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

时间:2017-06-17 06:04:16

标签: qt contextmenu qdockwidget

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

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

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

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

我没有想法......任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:6)

根据评论,有必要将QDockWidget上的上下文菜单政策设置为Qt::PreventContextMenu ...

dock_widget->setContextMenuPolicy(Qt::PreventContextMenu);

而不仅仅是Qt::NoContextMenu。从documentation Qt::NoContextMenu只是将上下文菜单处理推迟到父窗口小部件,而不是完全阻止它。