如何禁用QDockWidget标题栏的上下文菜单

Tob*_*old 4 qt contextmenu qdockwidget

我有几个QDockWidgets都不是closabale(使用Qt 5.6).因此,右键单击其中一个标题栏时显示的上下文菜单只有禁用的条目,我想禁用整个上下文菜单.

我试图将contextMenuPolicy设置为NoContextMenu但没有成功.

然后我尝试使用QDockWidget的子类,覆盖ContextMenuEvent并忽略它.菜单仍然显示.

然后我尝试安装一个事件过滤器来捕获ContextMenuEvent,但它没有捕获任何,只有PaintEvents,ResizeEvents等.

我没有想法...任何帮助将不胜感激!

G.M*_*.M. 7

按照该意见,有必要设定在上下文菜单的政策QDockWidget,以Qt::PreventContextMenu...

dock_widget->setContextMenuPolicy(Qt::PreventContextMenu);
Run Code Online (Sandbox Code Playgroud)

而不是简单Qt::NoContextMenu.从文档中 Qt::NoContextMenu简单地将上下文菜单处理推迟到父窗口小部件,而不是完全阻止它.