如何通过鼠标单击在 QGraphicsView 中选择位置并添加项目?

Posted

技术标签:

【中文标题】如何通过鼠标单击在 QGraphicsView 中选择位置并添加项目?【英文标题】:How to select a position and add an item in a QGraphicsView by mouse click? 【发布时间】:2015-08-25 11:05:48 【问题描述】:

我想通过鼠标单击在QGraphicsView 中选择位置和项目,并将项目添加到此位置/项目的连接视图。我是否需要实现我自己的QGraphicsView 子类或者是否有更短的解决方案,例如带信号/槽?

【问题讨论】:

【参考方案1】:

有几种方法可以做到:

重新实现mousePressEvent(QMouseEvent*)(所以,你需要实现QGraphicsView的子类),

QGraphicsView 调用installEventFilter(QObject *) 并实现bool eventFilter(QObject *, QEvent *) 以捕获所有事件(并在此函数内仅处理QEvent::MouseButtonPress)。在这种情况下,您不需要实现QGraphicsView 的子类。

另请参阅:Click event for QGraphicsView Qt 和 How to draw a point (on mouseclick) on a QGraphicsScene

【讨论】:

以上是关于如何通过鼠标单击在 QGraphicsView 中选择位置并添加项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 QMainWindow 鼠标点击位置传递给 QGraphicsView

阻止 QGraphicsView 的一些鼠标事件

在自定义 QGraphicsView 中移动 QGraphicsItem 问题

如何在Qgraphicsview上使用QPainter绘图

Qt QGraphicsView 和 QGraphicScene 鼠标位置

QGraphicsView右键鼠标按下事件问题