繁体   English   中英

Qt GraphicsView mouseMoveEvent阴影GraphicsItem mouseMoveEvent

[英]Qt GraphicsView mouseMoveEvent shadowing GraphicsItem mouseMoveEvent

我在重载mouseMoveEvent时遇到了麻烦。

我已经将QGraphicsView子类化,并重载了mousePressEvent,mouseMoveEvent和mouseReleaseEvent。 我正在使用这些事件来绘制一个自定义QGraphicsItem - 这是一个Line。 (mousePress - 设置行的起点,mouseMove使行跟随光标,第二个mousePress设置行的终点,mouseRelease停止绘制行。)

我还创建了另一个自定义项 - 节点。 使用mousePress事件绘制节点。 我有2个标志来区分绘制线和节点。 Node的ItemIsMovable标志设置为true,我在Node类中重新实现了mouseMoveEvent以使其移动(我改变它的坐标并重新绘制它。它运行正常。)

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM