C ++ over Qt:控制标签和按钮的透明度

时间:2014-05-30 06:31:51

标签: c++ qt user-interface stylesheet qt-designer

好吧,我再次尝试使用Qt Creator上的Linux GUI应用程序,我在项目的Qt资源文件中添加了几个图像。我试图在我的主窗口和其他窗口和对话框中有一个很好的背景。我使用的是样式表选项(无编码)。

我无法设置标签和按钮的透明度级别。关于如何从Qt创建者GUI本身做到这一点的任何想法???
I am attaching a snap of how my application looks.

4 个答案:

答案 0 :(得分:8)

您可以通过设置样式表来设置QLabel或QPushbutton的透明度:

ui->label->setStyleSheet("background-color: rgba(255, 255, 255, 0);");
ui->button->setStyleSheet("background-color: rgba(255, 255, 255, 0);");

您还可以将background-color: rgba(255, 255, 255, 0);添加到设计器中窗口小部件的styleSheet属性中。

第四个参数是alpha。通过将alpha设置为大于零的某个值,您还可以拥有半透明小部件:

ui->button->setStyleSheet("background-color: rgba(255, 255, 255, 50);");

答案 1 :(得分:5)

ui元素属性的QWidget部分中有属性“Window opacity”(qtDesigner视图的右下角)。默认情况下,它是1.0(完全不透明)。

It is also available programmatically

答案 2 :(得分:1)

这对我有用:

this->setWindowOpacity(0.35);
this->setAttribute(Qt::WA_TranslucentBackground, false);
this->setStyleSheet("background-color: yellow;");

答案 3 :(得分:0)

不是来自GUI,但对某人仍然有用:

    auto effect = new QGraphicsOpacityEffect(this);
    effect->setOpacity(0.5);
    yourWidget->setGraphicsEffect(effect);
    yourWidget->setAutoFillBackground(true);

here被盗。