【发布时间】:2014-12-10 16:34:22
【问题描述】:
我正在使用 QAbstractScrollArea + 自定义 QWidget 衍生小部件作为“the”小部件 (覆盖了 sizeHint() )。 应用程序需要在 mouseMove 期间不断更新 QWidget 内容(类似于 拖动,但不完全是,它是在对象之间绘制线条的绘图工具,因此鼠标 光标需要改变 + 线需要动态绘制)。
应用程序运行良好,例如我可以正确渲染内容,滚动条可见, 我可以在 scrollContentsBy 等期间手动更新视口。
但是,无论我在 mouseMoveEvent 中手动触发 update()(或 repaint())调用, 只有在“拖动”过程结束后才会调用paintEvent,例如mouseReleaseEvent 被触发。
我不知道为什么会这样。显然,如果我直接在 mouseMoveEvent,它将被 QPainter 拒绝(因为我无法在其中实例化 QPainter mouseMoveEvent - Qt 在尝试这样做时会丢弃“不应再调用paintEngine”)。
欢迎任何建议:) 谢谢,
【问题讨论】:
标签: qt paintevent