从窗口小部件的父级访问坐标

时间:2016-08-23 06:25:16

标签: c++ qt qgraphicsview qgraphicsscene

我在QGraphicsView内部MainWindow已实施QGraphicScene。当我在QGraphicScene的某个部分右键单击鼠标时,我需要弹出一个小部件。小部件的父级需要为MainWindow

我的问题是,我需要验证我在mousePressEvent QGraphicScene内点击的部分的有效性,并在完全相同的位置弹出窗口小部件,但{ {1}}和QGraphicScene显然不一样。为此,我使用自定义信号触发MainWindow内的一个插槽,并从MainWindow的{​​{1}}获取坐标。问题是来自mousePressEvent的{​​{1}}是在MainWindow mouseEvent之前触发的。如果我右键单击两次但是我需要它从第一次右键单击开始工作,这非常有意义并且有效。

我无法实现过滤器或更改焦点,因为我在应用程序中有大量事件。

QGraphicScene:

QGraphicsScene

主窗口:

mouseEvent

1 个答案:

答案 0 :(得分:2)

使用QGraphicsView::mapFromScene()将场景坐标映射到视图窗口小部件坐标,然后使用QWidget::mapToParent()将坐标映射到它的父窗口小部件,这可能是您的主窗口。您还可以找到有用的方法QWidget::mapTo()