1

我正在构建一个应用程序,其中我只为我的 mainWindow 提供了背景,并且所有其他小部件都在没有任何背景的情况下使用,但是当我运行应用程序时,它们不是 100% 透明的,它们有点半透明,有什么方法可以让它们 100 % 透明,以便只有前景可以出现而没有背景提示。

在此处输入图像描述

4

1 回答 1

0

您能否发布您目前用来获得透明度的代码?如果你说你得到“半透明的东西”,我认为你创建了一个工具窗口,这不是你真正想要的。

一个真正透明的主窗口可以通过移除标题栏来实现(将 QWidget 构造函数 Qt::FramelessWindowHint 作为第二个参数 - WindowFlags),在小部件中绘制应该以不常见颜色透明的所有内容(如 255,0,255),然后把它割下来。

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

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

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

于 2012-04-24T13:59:24.947 回答