Tud*_*orT 8 qt contextmenu qgraphicsscene qmouseevent
当用户右键单击场景的空白部分时,有没有办法显示弹出窗口?
我是Qt的新手,我尝试过插槽和子类,但无济于事.
没有这样的插槽,分别是:
"错误:'QMouseEvent'尚未宣布"
在尝试实施该onMouseRelease事件时.
小智 10
QGraphicsView是用于显示QGraphicsScene内容的小部件.因此,实现上下文菜单(弹出菜单)的正确位置是QGraphicsView.
你需要重新实现contextMenuEvent函数是你自己继承自QGraphicsView的类:
void YourGraphicsView::contextMenuEvent(QContextMenuEvent *event)
{
QMenu menu(this);
menu.addAction(...);
menu.addAction(...);
...
menu.exec(event->globalPos());
}
Run Code Online (Sandbox Code Playgroud)
另请参阅Qt的菜单示例.
您可以重新实现该类的contextMenuEvent方法QGraphicsScene,这将使您可以访问场景坐标以及屏幕坐标(相反QGraphicsView,它也有效,但没有此信息):
void YourGraphicsScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
{
// event->scenePos() is available
QMenu menu(this);
menu.addAction(...);
menu.addAction(...);
...
menu.exec(event->screenPos());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9909 次 |
| 最近记录: |