我在QGraphicsView
内部MainWindow
已实施QGraphicScene
。当我在QGraphicScene
的某个部分右键单击鼠标时,我需要弹出一个小部件。小部件的父级需要为MainWindow
。
我的问题是,我需要验证我在mousePressEvent
QGraphicScene
内点击的部分的有效性,并在完全相同的位置弹出窗口小部件,但{ {1}}和QGraphicScene
显然不一样。为此,我使用自定义信号触发MainWindow
内的一个插槽,并从MainWindow
的{{1}}获取坐标。问题是来自mousePressEvent
的{{1}}是在MainWindow
mouseEvent
之前触发的。如果我右键单击两次但是我需要它从第一次右键单击开始工作,这非常有意义并且有效。
我无法实现过滤器或更改焦点,因为我在应用程序中有大量事件。
QGraphicScene:
QGraphicsScene
主窗口:
mouseEvent
答案 0 :(得分:2)
使用QGraphicsView::mapFromScene()
将场景坐标映射到视图窗口小部件坐标,然后使用QWidget::mapToParent()
将坐标映射到它的父窗口小部件,这可能是您的主窗口。您还可以找到有用的方法QWidget::mapTo()
。