[英]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.