C++ Qt Graphics查看mouseMoveEvent阴影图形Sitem mouseMoveEvent

C++ Qt Graphics查看mouseMoveEvent阴影图形Sitem mouseMoveEvent,c++,qt,qgraphicsview,qgraphicsitem,qgraphicsscene,C++,Qt,Qgraphicsview,Qgraphicsitem,Qgraphicsscene,我在mouseMoveEvent过载方面遇到了问题 我将QGraphicsView和重载的mousePressEvent、mouseMoveEvent和mouseReleaseEvent子类化。我使用这些事件来绘制一个定制的QGraphicsItem-这是一条线。(mousePress-设置线条的起点,mouseMove使线条跟随光标,第二个mousePress设置线条的终点,mouseRelease停止绘制线条。) 我还创建了另一个自定义项节点。节点是使用鼠标按下事件绘制的。我有两个标志来区分

我在mouseMoveEvent过载方面遇到了问题

我将QGraphicsView和重载的mousePressEvent、mouseMoveEvent和mouseReleaseEvent子类化。我使用这些事件来绘制一个定制的QGraphicsItem-这是一条线。(mousePress-设置线条的起点,mouseMove使线条跟随光标,第二个mousePress设置线条的终点,mouseRelease停止绘制线条。)

我还创建了另一个自定义项节点。节点是使用鼠标按下事件绘制的。我有两个标志来区分绘制线和节点。节点的ItemIsMovable标志被设置为true,我在Node类中重新实现了mousemovevent以使其移动(我更改了它的坐标并重新绘制了它。它工作得很好。)

问题是——当我在QGraphicsView的子类(用于绘制线条)中实现mouseMoveEvent时——Node类的mouseMoveEvent停止工作,节点不再移动。我怎样才能解决这个问题


感谢您的时间,我们将感谢您的帮助。

您需要从实现中调用基类(
QGraphicsView
)实现。否则,
QGraphicsView
将不会处理鼠标事件,也不会将鼠标事件传递到场景及其项目

void MyView::mousePressEvent(QMouseEvent* e) {
  QGraphicsView::mousePressEvent(e);
  //your implementation
}

对就这样。非常感谢你。