我有一些问题。希望任何人都可以帮助我。 我有一个Qwidget1和Qwidget2。 Qwidget1有一个小工具可以推广到Qwidget2。 Qwidget1和Qwidget2都有paintEvent。我写了“qDebug()< <”更新“;”在Qwidget1的绘画事件中。当我运行项目时,我看到一个单词“更新”已经打印了很多次。那么为什么Qwidget1会多次执行绘制事件。我该如何修复它,只需在第一次显示Qwidget1时以及我打电话更新时执行绘画事件。Qt创建者:Qwidget的paintEvent
0
A
回答
0
这是预期的行为。你的代码工作就像它应该。来自Qt文档:
绘画事件是重绘全部或部分小部件的请求。它可以 发生由于以下原因之一:
重绘()或update()被调用,
小部件被遮挡,现已发现,
或许多其他原因。
0
当窗口或其部件失效并且必须重新绘制时,可能有多种情况。这些情况包括但不限于:
- 窗口大小变化(包括最小化/最大化/恢复窗口);
- 鼠标指针经过一个小部件 - 它可能会或可能不会触发重绘;
- 其他窗口在窗口上移动。
发生这种情况时,Windows会将WM_PAINT
消息发送给应用程序。您可以检查收到的WM_PAINT
消息的数量是否与paintEvent
调用的数量相匹配,但是我怀疑Qt是否会增加任何显着的开销。
+0
不更改窗口大小,没有鼠标指针经过窗口小部件,也没有其他窗口在窗口上移动。当我删除Qwidget2的绘画事件时,我看到Qwidget1的绘画事件只执行一次。 – LeHuuTien
相关问题
- 1. QT paintEvent为QWidget
- 2. Ovveride,Qwidget的paintevent
- 3. 由Qt设计师创建的QWidget未被识别为QWidget
- 4. 在Qt中创建自定义Qwidget?
- 5. Qt从QString动态创建QWidget
- 6. QWidget的paintEvent()滞后应用程序
- 7. [QT 5.7.1] QWidget的:一个QWidget
- 8. QT构建QWidget,QObject错误
- 9. Qt创建者5链接
- 10. QT创建者对qtquick/C++
- 11. Qt创建者4.1和cmake
- 12. Qt创建者头文件
- 13. Qt创建者SSL启用
- 14. 创造的paintEvent
- 15. qt QWidget点击
- 16. Qt QWidget :: setGeomerty
- 17. 中央QWidget [Qt]
- 18. Qt paintEvent()非正常触发
- 19. 的Qt - QWidget的:无法创建时没有GUI正在使用
- 20. 如何创建从QWidget继承的qt插件
- 21. QT创建者和Qt(本身)的区别 - 启动QT
- 22. Qt QWidget :: minimumSizeHint延迟
- 23. Qt的:QWidget的大小
- 24. 不能覆盖QT中的VideoWidget paintEvent()C++
- 25. Qt 5 - Qt Quick 2中的QWidget
- 26. 来自QT QWidget的X11 Widget
- 27. 基于QWidget的Qt构件
- 28. QWidget周围的Qt空间
- 29. Qt:动画QWidget的'下滚'
- 30. Qt 4.8 QWidget的变化?
这里没有什么坏的。 –
请告诉我原因。 – LeHuuTien