在qwidget上重新映射上下文菜单调用

时间:2015-10-11 20:23:23

标签: qt qt-creator qwidget

我的自定义小部件继承自QWidget,我已将小部件的菜单调用信号连接到我的插槽。

connect(m_ontologyView, SIGNAL(customContextMenuRequested(QPoint)), SLOT(showContextMenuSlot(QPoint)));

现在我希望用户能够更改调用上下文菜单的按钮。通常用鼠标右键调用它,但是如何告诉小部件用我选择的按钮调用菜单?

我在Qt 5.4.0

1 个答案:

答案 0 :(得分:1)

您需要重新实现小部件鼠标事件函数QWidget::customContextMenuRequested,而不是使用QWidget::mousePressEvent, QWidget::mouseReleaseEvent and QWidget::mouseMoveEvent。在这些活动中,您可以使用QMenu::popup向您显示菜单。 (可以从鼠标事件中提取该点。)