重新映射 qwidget 上的上下文菜单调用
Remap context menu call on qwidget
我的自定义小部件继承自 QWidget,并且我已将小部件的菜单调用信号连接到我的插槽。
connect(m_ontologyView, SIGNAL(customContextMenuRequested(QPoint)), SLOT(showContextMenuSlot(QPoint)));
现在我希望用户能够更改调用上下文菜单的按钮。通常它是用鼠标右键调用的,但是我如何告诉小部件用我选择的按钮调用菜单?
我正在使用 Qt 5.4.0
您需要重新实现小部件鼠标事件函数,而不是使用 QWidget::customContextMenuRequested
,QWidget::mousePressEvent, QWidget::mouseReleaseEvent and QWidget::mouseMoveEvent
。在这些事件中,您可以使用 QMenu::popup
显示菜单。 (可以从鼠标事件中提取点)。
我的自定义小部件继承自 QWidget,并且我已将小部件的菜单调用信号连接到我的插槽。
connect(m_ontologyView, SIGNAL(customContextMenuRequested(QPoint)), SLOT(showContextMenuSlot(QPoint)));
现在我希望用户能够更改调用上下文菜单的按钮。通常它是用鼠标右键调用的,但是我如何告诉小部件用我选择的按钮调用菜单?
我正在使用 Qt 5.4.0
您需要重新实现小部件鼠标事件函数,而不是使用 QWidget::customContextMenuRequested
,QWidget::mousePressEvent, QWidget::mouseReleaseEvent and QWidget::mouseMoveEvent
。在这些事件中,您可以使用 QMenu::popup
显示菜单。 (可以从鼠标事件中提取点)。