如何获取 QToolBar / QDockWidget 上下文菜单操作?
Posted
技术标签:
【中文标题】如何获取 QToolBar / QDockWidget 上下文菜单操作?【英文标题】:How to get QToolBar / QDockWidget context menu actions? 【发布时间】:2018-03-13 15:00:26 【问题描述】:当使用QToolBar
和QDockWidget
小部件时,它们会自动生成一个上下文菜单,允许您显示/隐藏这些停靠栏和工具栏小部件(请参阅screenshot)。
如何获得这些上下文菜单操作?
使用示例:例如,我想在菜单栏中的“窗口”QMenu
中添加相同的操作(显示/隐藏停靠栏和工具栏),而无需手动重复前面提到的操作上下文菜单。
【问题讨论】:
欢迎来到 ***,请拨打tour 和How to create a Minimal, Complete, and Verifiable example 我发现了一些类似的问题here @MarKS 谢谢,但这是一个有点不同的问题。我需要获取由QToolBar
或QDockWidget
自动生成的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 中显示图标