繁体   English   中英

调整半透明Qt小部件时的黑色闪烁(仅在启用Aero时)?

[英]Black flicker while resizing translucent Qt widget (only when Aero is enabled)?

我有一个顶级的Qt小部件,其中包含FramelessWindowHint标志和WA_TranslucentBackground属性集。 它有几个孩子,每个孩子都在上面画一个图像。 它们不在布局中。 相反,我只是在某些事情发生变化时移动它们(它不是用户可调整大小的)。

窗口有两种状态 - 大状态和小状态。 当我在它们之间切换时,我调整窗口大小并重新定位孩子。 问题是,当窗口调整大小时,在将图像绘制在其上之前,在顶层窗口上短暂地闪烁黑盒子。

如果我禁用Aero,问题就会消失。 我在一篇描述Qt新版本的文章中解释了这个问题的简要提及(这个版本已经很久了),但它仍然不起作用。

有什么想法吗?

谢谢!

我没有专门的Qt经验,但我使用过其他窗口工具包。 通常,当您直接向屏幕绘制更新时,会看到这种闪烁。 修复是使用双缓冲 ,这基本上意味着您将更新渲染到屏幕外缓冲区(某种位图,在最纯粹的意义上的单词),然后将整个更新的图像复制到屏幕中,快速操作。

您有时只看到闪烁的原因只是屏幕刷新速度与绘制更新速度的关系。 如果你“幸运”,那么所有的更新都会在屏幕刷新之间发生,你可能看不到任何闪烁。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM