Qt 如何在QAction触发器上显示QMenu

Qt 如何在QAction触发器上显示QMenu,qt,menu,qaction,Qt,Menu,Qaction,我的应用程序中有一个QT工具栏,由QAction对象填充,其中一个QAction有一个关联菜单。当动作被触发时,我想在QActions按钮下面弹出菜单 我试过: m_ui->action_NewDataType->menu()->show(); 但这显示了屏幕左上角的菜单,而不是我想要它的地方。如何显示QAction按钮下方的菜单,并与按钮边缘对齐?问题已解决: QWidget* w = m_ui->mainToolBar->widgetForAction(m_

我的应用程序中有一个QT工具栏,由QAction对象填充,其中一个QAction有一个关联菜单。当动作被触发时,我想在QActions按钮下面弹出菜单

我试过:

m_ui->action_NewDataType->menu()->show();
但这显示了屏幕左上角的菜单,而不是我想要它的地方。如何显示QAction按钮下方的菜单,并与按钮边缘对齐?

问题已解决:

 QWidget* w = m_ui->mainToolBar->widgetForAction(m_ui->action_NewDataType);
 m_ui->action_NewDataType->menu()->popup(w->mapToGlobal(QPoint(0, w->height())))

m_ui->action_NewDataType->menu->movex,y,这就是你要找的吗?你也可以调用m_ui->action\u NewDataType->menu->execQPointx,y,这样你就不必首先移动它了。是的,但是我如何找到x,y呢?你可以用QToolButton来实现,而不是用QToolbar来实现吗?不,不是真的,它也用在菜单中同样的actionOk,问题解决:QWidget*w=m_ui->Main工具栏->WidgetForAction m_ui->action_NewDataType;m\u ui->action\u NewDataType->menu->PopuwW->mapToGlobalQPoint0,w->height;