簡體   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