是否可以设置qt小部件的不透明度?

时间:2010-12-21 13:00:14

标签: c++ qt opacity qwidget

我知道有一个函数QWidget::setWindowOpacity(qreal level)但是在文档中写的这只适用于windows。

有没有办法让布局内部的小部件也不透明?

我正在尝试做的是一个小部件正在淡入的动画。我曾经使用偏好设置对话框进行了操作。它曾在那里工作。

那么你认为有一种方法或解决方法来实现布局中小部件的不透明度吗?你会怎么做?

提前致谢!

5 个答案:

答案 0 :(得分:8)

只需使用QGraphicsOpacityEffect即可达到此效果。

答案 1 :(得分:4)

对于mainwidow中的小部件,默认情况下似乎有setAutoFillBackground(False)

让它淡出淡出你需要使用QGraphicsOpacityEffectsetAutoFillBackground(True)

一个小例子:在主窗口内调用的小部件内写入

op=QGraphicsOpacityEffect(self)
op.setOpacity(1.00) #0 to 1 will cause the fade effect to kick in
self.setGraphicsEffect(op)
self.setAutoFillBackground(True)

答案 2 :(得分:2)

SetWindowOpacity在Linux中适合我。我使用这样的代码来改变窗口的不透明度,(值从0到100):

setWindowOpacity(qreal(value)/100);

答案 3 :(得分:1)

mywidget.setStyleSheet('background-color:rgba(r, g, b, alpha);') 

为我工作

答案 4 :(得分:0)

在Qt5中,您可以使用css使窗口小部件透明

double

enter image description here