qt - 在Qt4中,如何检查paintEvent是否由resize触发?

标签 qt events resize pyqt

在 Qt4 应用程序中,是否可以在 paintEvent() 处理程序内部判断重绘是否由调整大小触发?

我有一个重绘非常慢的小部件(一个复杂的情节),我想通过在小部件被调整大小时只对调整大小的像素图进行 blitting 来加快调整大小,并且只重绘调整大小完成后的小部件。

我尝试在 resizeEvent() 的开头和结尾设置/取消设置标志,但这似乎不起作用(即标志在 paintEvent() 中始终处于关闭状态)。

最佳答案

我认为你不能轻易做到这一点。调整大小何时开始/停止有点难以判断,尤其是在跨平台的情况下。我可能有一个由 resizeEvent 触发的单次计时器,它将图像渲染到 QPixmap 上。如果您在计时器仍处于事件状态时收到另一个 resizeEvent,只需重新启动它。在 paintEvent 中总是绘制当前的像素图,在你从计时器渲染一个新的像素图之后,在小部件上调用 update()。不是一个理想的解决方案,但它应该可以工作。

关于qt - 在Qt4中,如何检查paintEvent是否由resize触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1520934/

相关文章:

c++ - 在 setupUi() 之后立即尝试设置 QLineEdit 的 setText() 时 QDialog 崩溃

c++ - qt 中 undefined reference

c# - 在不知道事件名称的情况下删除事件

iphone - 如何调整 UIImageView 的大小以适应底层图像而不移动它?

JavaFX 缩小 ImageView 尺寸

c++ - 使用 qSort 时遇到问题

python - PyQt:当单元格进入 QCalendarWidget 时发出信号

jquery - jQuery 可以确定哪些 div 当前位于用户的浏览器 View 中吗?

javascript - 如何使用 Javascript(不是 html)用 onclick 事件声明事件对象?

swift - 如何根据文本字段的大小调整字体大小?