让QT Widgets半透明

Ale*_*Ale 13 c++ qt transparency widget opacity

我正在使用包含子元素的QWidget元素,我需要的是一些方法来使这个小部件半透明,完全包括它的子元素.

我见过QWidgets的一个方法,它是QWidget :: setWindowOpacity(),但这只适用于小部件本身就是一个窗口,而在我的情况下,这个小部件是布局的一部分.

所有这一切的目标,是我能够在出现或消失时使这个小部件褪色.

感谢任何想法,希望不要制作自定义小部件,但如果没有其他选择,我无论如何都可以做到.

小智 32

您可以使用QGraphicsOpacityEffect.

50%透明度的示例代码片段将是:

ui->setupUi(this);
QGraphicsOpacityEffect * effect = new QGraphicsOpacityEffect(ui->pushButton);
effect->setOpacity(0.5);
ui->pushButton->setGraphicsEffect(effect);
Run Code Online (Sandbox Code Playgroud)

  • 工作得很完美,我可以使用QPropertyAnimation正确设置动画.非常感谢您的帮助社交. (3认同)