QWidget背景透明
QWidget background transparent
我在主window中有一个小部件,该小部件具有以下样式:
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 = 透明。
也可以尝试 QGraphicsOpacityEffect.The 下面是为按钮设置 50% 不透明度的代码,但它也可以扩展到小部件。
ui->setupUi(this);
QGraphicsOpacityEffect * effect = new QGraphicsOpacityEffect(ui->pushButton);
effect->setOpacity(0.5);
ui->pushButton->setGraphicsEffect(effect);
我在主window中有一个小部件,该小部件具有以下样式:
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 = 透明。
也可以尝试 QGraphicsOpacityEffect.The 下面是为按钮设置 50% 不透明度的代码,但它也可以扩展到小部件。
ui->setupUi(this);
QGraphicsOpacityEffect * effect = new QGraphicsOpacityEffect(ui->pushButton);
effect->setOpacity(0.5);
ui->pushButton->setGraphicsEffect(effect);