我试图在QPainter中显示60fps的视频(在OpenGLwidget中)
我遇到一个问题,有时候绘图需要太长时间,并且在使用QPainter时会发生下一次重绘事件 - 这会产生警告和随机崩溃。
几个问题:
有没有'Qt方式'有效地将重复调用联系起来,因为可能是QPainter知道它正在被使用 - 或者我只是使用我的平台互斥支持?
是否有更好的方法以高帧速率绘制(当然也需要锁定到VSync)而不仅仅是调用repaint()的计时器?
答案 0 :(得分:2)
尝试使用update()
代替repaint()
。
此功能不会导致 立即重画;相反 安排一个油漆事件进行处理 当Qt回到主赛事时 环。这允许Qt优化 速度更快,闪烁更少 调用repaint()会。
多次调用update() 通常只会产生一个 paintEvent()调用。