当用户右键单击场景的空白部分时,有没有办法显示弹出窗口?
我是 Qt 的新手,我尝试过插槽和子类化,但无济于事。
没有这样的插槽,并且分别:
“错误:'QMouseEvent' 尚未声明”
尝试实施onMouseRelease
事件时。
当用户右键单击场景的空白部分时,有没有办法显示弹出窗口?
我是 Qt 的新手,我尝试过插槽和子类化,但无济于事。
没有这样的插槽,并且分别:
“错误:'QMouseEvent' 尚未声明”
尝试实施onMouseRelease
事件时。
QGraphicsView 是用于显示 QGraphicsScene 内容的小部件。所以实现上下文菜单(弹出菜单)的正确位置是QGraphicsView。
你需要重新实现contextMenuEvent函数是你自己继承自QGraphicsView的类:
void YourGraphicsView::contextMenuEvent(QContextMenuEvent *event)
{
QMenu menu(this);
menu.addAction(...);
menu.addAction(...);
...
menu.exec(event->globalPos());
}
另请参阅 Qt 的菜单示例。
您可以重新实现该类的contextMenuEvent
方法QGraphicsScene
,这将使您能够访问场景坐标以及屏幕坐标(与 相反QGraphicsView
,它也可以工作但没有此信息):
void YourGraphicsScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
{
// event->scenePos() is available
QMenu menu(this);
menu.addAction(...);
menu.addAction(...);
...
menu.exec(event->screenPos());
}