0

我想在 Qt 中制作一个半透明的窗口:

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

但是一旦我设置Qt::WA_TranslucentBackgroundtrue,每个小部件的四个角上都会有白色的东西:

每当鼠标悬停在小部件上或单击它时,它就会出现。如何避免这种情况?如果我设置Qt::WA_TranslucentBackgroundfalse,问题就会消失。但我需要透明窗口。预先感谢!

4

1 回答 1

0

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

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

于 2013-01-16T14:46:16.903 回答