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

Ric*_*het 7 c++ user-interface qt stylesheet qt-designer

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

我无法设置标签和按钮的透明度级别.关于如何从Qt创建者GUI本身做到这一点的任何想法???
!我正在附上我的应用程序的外观.

Nej*_*jat 8

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

ui->label->setStyleSheet("background-color: rgba(255, 255, 255, 0);");
ui->button->setStyleSheet("background-color: rgba(255, 255, 255, 0);");
Run Code Online (Sandbox Code Playgroud)

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

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

ui->button->setStyleSheet("background-color: rgba(255, 255, 255, 50);");
Run Code Online (Sandbox Code Playgroud)


UmN*_*obe 5

QWidgetui元素属性的部分中有属性"Window opacity" (在qtDesigner视图的右下角).默认情况下1.0(完全不透明).

它也可以通过编程方式获得


Pol*_*lot 5

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

    auto effect = new QGraphicsOpacityEffect(this);
    effect->setOpacity(0.5);
    yourWidget->setGraphicsEffect(effect);
    yourWidget->setAutoFillBackground(true);
Run Code Online (Sandbox Code Playgroud)

这里偷来的。