使 QT Widgets 半透明

发布于 2024-12-04 19:39:12 字数 251 浏览 2 评论 0原文

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

我已经看到了 QWidgets 的一种方法,即 QWidget::setWindowOpacity() ,但这仅当小部件本身是窗口时才有效,在我的情况下,该小部件是布局的一部分。

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

感谢您的任何想法,希望不要制作自定义小部件,但如果没有更多替代方案,我无论如何都可以做到。

I am working with a QWidget elements which contains child elements, what I need is some way to make this widget semi transparent, completely, including its childs.

I have seen a method for QWidgets which is QWidget::setWindowOpacity() but this works only if the widget is a window itself, and in my case this widget is part of a layout.

The goal of all this, is me being able to make this widget fade when appearing or disappearing.

Thanks for any ideas, hopefully not making a custom widget, but if there is no more alternatives, I can do it anyway.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

傲性难收 2024-12-11 19:39:12

您可以使用QGraphicsOpacityEffect

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

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

You can use QGraphicsOpacityEffect.

A sample code fragment for 50% transparency would be:

ui->setupUi(this);
QGraphicsOpacityEffect * effect = new QGraphicsOpacityEffect(ui->pushButton);
effect->setOpacity(0.5);
ui->pushButton->setGraphicsEffect(effect);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文