Q获取背景透明

QWidget background transparent

本文关键字:透明 背景 获取      更新时间:2023-10-16

我在主窗口中有一个小部件,该小部件具有以下样式:

    background-color:#ffeeeeee;width:100%;height:100%;

它设置为小部件布局并控制自动大小以填充小部件的几何形状,但小部件的背景始终是透明的。 我该怎么做才能使其不透明?

这是使用在RedHat Linux 7.2上运行的Qt5.6

注意:语法 #ffeeeeee 特定于Qt,其中第一个节点是alpha,然后是红色,绿色和蓝色八位字节。

你的颜色中有太多字符。改变:

background-color: #ffeeeeee;

自:

background-color: #eeeeee;

如果要使用透明度,则必须明确:

background-color: rgba(...);

存在背景色并设置为以下任一颜色:

    background-color:white;width:100%;height:100%;

    background-color:#ffffff;width:100%;height:100%;

或我的原件:

    background-color:#ffeeeeee;width:100%;height:100%;

属性 autoFillBackground 设置为 false,并且小组件的背景在运行时是透明的。

但是,删除任何背景色样式并仅保留样式:

    width:100%;height:100%

属性 autoFillBackground 设置为 true,并且小部件是不透明的。

据我所知,样式中没有错误,我相信这可能是Qt中的错误。

你有没有尝试过使用 QWidget::setWindowOpacity(1),其中 1 = 不透明,0 = 透明。

下面是为按钮设置50%不透明度的代码,但它也可以扩展到小部件。

ui->setupUi(this);
QGraphicsOpacityEffect * effect = new QGraphicsOpacityEffect(ui->pushButton);
effect->setOpacity(0.5); 
ui->pushButton->setGraphicsEffect(effect);