使用半透明属性时如何避免白色瑕疵?

时间:2013-01-12 07:11:21

标签: qt artifacts

我想在Qt中创建一个半透明的窗口:

setWindowFlags(Qt::Popup| Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground,true);

但是,一旦我将Qt::WA_TranslucentBackground设置为true,每个小部件的四个角就会出现白色事物:

只要鼠标悬停在窗口小部件上,或者单击它,就会出现。 怎么避免这个?如果我将Qt::WA_TranslucentBackground设置为false,问题就会消失。但我需要透明窗口。 先谢谢!

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。 造成这些工件的原因有两个: 我打开了窗口的半透明背景,并使用QPainter手动绘制窗口的rouned-corner背景。当鼠标悬停/按下子窗口小部件时,发送到窗口窗口小部件的窗口小部件的更新(QRect)不能很好地计算背景。

当我使用样式表绘制背景时,问题解决了:)

相关问题