【发布时间】:2013-08-21 09:24:01
【问题描述】:
我的应用程序中有一个 (QT) 工具栏,该工具栏由 QAction 对象填充,其中一个 QAction 具有关联的菜单。我想在触发操作时在 QActions 按钮下方弹出该菜单。
我试过了:
m_ui->action_NewDataType->menu()->show();
但这会在屏幕左上角显示菜单,而不是在我想要的位置。如何在 QAction 按钮下方显示菜单,并与按钮的边缘很好地对齐?
【问题讨论】:
-
m_ui->action_NewDataType->menu()->move(x,y),这就是你要找的吗?您也可以拨打m_ui->action_NewDataType->menu()->exec(QPoint(x,y)),这样您就不必先移动它。 -
是的,但是如何找到 (x,y)?
-
你可以用QToolButton而不是QToolbar来实现吗?
-
不,不是真的,它也用于菜单(相同的操作)
-
好的,问题解决了:
QWidget* w = m_ui->mainToolBar->widgetForAction(m_ui->action_NewDataType); m_ui->action_NewDataType->menu()->popup(w->mapToGlobal(QPoint(0, w->height())));