使 QT Widgets 半透明

Posted

技术标签:

【中文标题】使 QT Widgets 半透明【英文标题】:Make QT Widgets semi-opaque 【发布时间】:2011-11-18 04:13:55 【问题描述】:

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

我见过 QWidgets 的一种方法,它是 QWidget::setWindowOpacity() 但这仅在小部件本身是窗口时才有效,并且在我的情况下,此小部件是布局的一部分。

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

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

【问题讨论】:

【参考方案1】:

您可以使用QGraphicsOpacityEffect。

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

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

【讨论】:

工作得很好,我可以使用 QPropertyAnimation 正确地对其进行动画处理。非常感谢您对社会的帮助。

以上是关于使 QT Widgets 半透明的主要内容,如果未能解决你的问题,请参考以下文章

QT主窗体半透明实现

QT 5.7 QML 快速半透明矩形,一侧有圆角

为啥黑色半透明 UIToolbar 的顶部与黑色半透明 UISearchBar 不同,如何使它们看起来相同?

qt 创建半透明异形窗口

Qt半透明背景导致子小部件在父小部件中“印记”

设置一个DIV半透明,怎么才能使这个DIV中的其他DIV不半透明?