一、使用setUpdateEnabled
二、在主线程中刷新
场景一:一个scroll窗口里面有很多preview窗口,preview窗口在播放内容。拖动scroll滑动块的时候,preview播放内容发生闪烁。
解决办法:
尝试了用本身的Scroll方法,以及用QScrollArea来代替都没有取得很好的成果。主要记录如下:
a..在窗口总高度没有超过可视高度时,无论使不使用QScrollArea都不会闪烁(没有滑动,长度不够)。
b. update()和repaint调用的paintEvent中的确有可能造成闪烁,但是在这里,paintEvent几乎没有做什么操作,
屏蔽了里面的操作也还是没有解决问题。
c. 不论是使用QScrollArea还是不使用,把画布高度调成sumheight,甚至比sumheight还高的情况下还是会闪烁。
d. 在preview窗口中自己绘制了彩条,在滑动滚动条的时候不会闪烁。
e. 把preview的背景色设置为透明还是闪烁。且将AutoFillBackgound属性设为false还是闪烁。
最后给出的建议是强制不刷新,setUpdateEnabled,然后经过适当的处理之后,现在满
足需求,没有闪烁了。应该是scroll的时候Qt内部会进行重绘,不仅仅是代码中自己
写的paintEvent,而是系统自己的背景处理。
场景二:研究preview窗口时码停止刷新的问题。
做了以下方面测试:a. 在下方菜单栏中放两个label,让其同样进行时码刷新。并且打日志记录通道窗口接受到的时码信息。结果是
一直都在接收