在 Qt4 应用程序中,是否可以在 paintEvent()
处理程序内部判断重绘是否由调整大小触发?
我有一个重绘非常慢的小部件(一个复杂的情节),我想通过在小部件被调整大小时只对调整大小的像素图进行 blitting 来加快调整大小,并且只重绘调整大小完成后的小部件。
我尝试在 resizeEvent()
的开头和结尾设置/取消设置标志,但这似乎不起作用(即标志在 paintEvent() 中始终处于关闭状态
)。
最佳答案
我认为你不能轻易做到这一点。调整大小何时开始/停止有点难以判断,尤其是在跨平台的情况下。我可能有一个由 resizeEvent
触发的单次计时器,它将图像渲染到 QPixmap
上。如果您在计时器仍处于事件状态时收到另一个 resizeEvent
,只需重新启动它。在 paintEvent
中总是绘制当前的像素图,在你从计时器渲染一个新的像素图之后,在小部件上调用 update()
。不是一个理想的解决方案,但它应该可以工作。
关于qt - 在Qt4中,如何检查paintEvent是否由resize触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1520934/