gpt4 book ai didi

c++ - Qt GraphicsView mouseMoveEvent 阴影 GraphicsItem mouseMoveEvent

转载 作者:行者123 更新时间:2023-11-30 02:51:46 59 4
gpt4 key购买 nike

我在重载 mouseMoveEvent 时遇到了问题。

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

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

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

感谢您抽出宝贵时间,我们将不胜感激。

最佳答案

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

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

关于c++ - Qt GraphicsView mouseMoveEvent 阴影 GraphicsItem mouseMoveEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19502364/

59 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com