【问题标题】:How to display a QMenu on a QAction trigger如何在 QAction 触发器上显示 QMenu
【发布时间】: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())));

标签: qt menu qaction


【解决方案1】:

问题解决了:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    相关资源
    最近更新 更多