如何在Qt中使Widgets背景透明

时间:2012-04-24 13:50:45

标签: qt qt4 symbian

我正在构建一个应用程序,其中我只给了我的mainWindow背景,所有其他小部件都没有任何背景使用,但是当我运行应用程序时,它们不是100%透明,它们有点半透明,有没有办法使它们100%透明,这样只有前景可以出现而没有背景提示。

enter image description here

1 个答案:

答案 0 :(得分:0)

您现在可以发布您正在使用的代码以获得透明度吗?如果你说你得到“半透明的东西”,我认为你创造了一个不是你真正想要的工具窗口。

可以通过删除标题栏(将QWidget构造函数Qt :: FramelessWindowHint作为第二个参数 - WindowFlags)来实现一个非常透明的主窗口,在窗口小部件中绘制一些应该是非常透明的透明颜色(如255,0,255) )然后切断它。

切断QWidget部分的一个非常原始的例子:

QBitmap b(100, 100);
b.fill(Qt::black);
setMask(b);

QBitmap必须是黑色的,这些像素应该是可见的,而白色则不是。在这个例子中,只有从0,0开始的100,100区域将是可见的,窗口的其余部分将是不可见的。