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



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

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

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

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

我没主意了...任何帮助将不胜感激!

根据注释,有必要将QDockWidget上的上下文菜单策略设置为Qt::PreventContextMenu...

dock_widget->setContextMenuPolicy(Qt::PreventContextMenu);

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

最新更新