如何获取 QToolBar / QDockWidget 上下文菜单操作?

Posted

技术标签:

【中文标题】如何获取 QToolBar / QDockWidget 上下文菜单操作?【英文标题】:How to get QToolBar / QDockWidget context menu actions? 【发布时间】:2018-03-13 15:00:26 【问题描述】:

当使用QToolBarQDockWidget 小部件时,它们会自动生成一个上下文菜单,允许您显示/隐藏这些停靠栏和工具栏小部件(请参阅screenshot)。

如何获得这些上下文菜单操作?

使用示例:例如,我想在菜单栏中的“窗口”QMenu 中添加相同的操作(显示/隐藏停靠栏和工具栏),而无需手动重复前面提到的操作上下文菜单。

【问题讨论】:

欢迎来到 ***,请拨打tour 和How to create a Minimal, Complete, and Verifiable example 我发现了一些类似的问题here @MarKS 谢谢,但这是一个有点不同的问题。我需要获取由QToolBarQDockWidget 自动生成的context 菜单(鼠标右键单击)。 @JohnDoe 你的问题不是很清楚......如果你想在你的QToolBar 的 contextMenu 中添加新条目也许你可以检查this 我认为这个问题没有任何问题。 John 要求一个没有很好记录的功能,所以当他需要确切的代码时,他应该从哪里获得任何代码。他甚至提供了一个例子来说明它的用途。 【参考方案1】:

找到答案了。

提到的上下文菜单包含自动生成的显示/隐藏停靠小部件和工具栏的操作,实际上由QMainWindow 类处理。它具有生成此列表的createPopupMenu() 方法。

所以这是获取主窗口上下文菜单操作的方法:

QList<QAction *> actions = createPopupMenu()->actions();

【讨论】:

以上是关于如何获取 QToolBar / QDockWidget 上下文菜单操作?的主要内容,如果未能解决你的问题,请参考以下文章

Qt 5.4 OS X 如何在 QMenu 和 QToolBar 中使用 QAction,但仅在 QToolbar 中显示图标

如何在 QTabWidget 中添加 QToolBar

QToolBar 位置(如何让它保持在固定位置)

在 QToolbar 上隐藏 QWidget?

QT学习之如何在QToolBar中添加带图标的QToolButton并设置图标大小

qt qtoolbar怎样平均分配按钮位置