如何通过鼠标单击 select 一个位置并在 QGraphicsView 中添加一个项目?

How to select a position and add an item in a QGraphicsView by mouse click?

我想 select 通过鼠标单击 QGraphicsView 中的位置和项目,并将项目添加到此 position/item 的连接视图中。我需要实现我自己的 QGraphicsView 子类还是有更短的解决方案,例如用 signal/slot?

有几种方法可以做到:

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

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

  • 的子类

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