QT透明布局

3
我正在使用垂直布局(QVBoxLayout)来管理按钮。我想将其背景颜色设置为50%的黑色透明度。这是否可行?
sw
2个回答

4

根据您所需的透明区域边界位置,您需要将按钮分组为一个小部件(如SigTerm所说),然后可以通过调色板来分配颜色。

QPalette palette = widget->palette();
palette.setColor(QPalette::Window, QColor(100,100,100,100));
widget->setPalette(palette);

或者使用样式表

widget->setStylesheet("QWidget{background-color: rgba(100,100,100,100);}";

样式表具有优势,您可以从一个不在代码中的地方为整个应用程序设置样式,并通过QApplication::setStylesheet(QString)设置应用程序范围的样式表。


2
啊,我已经有一段时间没有使用Qt了,但据我所知,QVBoxLayout没有背景颜色,因此不可能实现。布局不是小部件,并且根本没有绘制,它只管理子小部件的大小。
如果您想创建彩色布局,则可能需要创建具有所需颜色的小部件,然后将QVBoxLayout设置为该小部件的父级。
如果您希望所有布局子项的颜色受到QVBoxLayout父级颜色的影响,则可能会更有趣,但我认为Qt4演示中的“嵌入式对话框”演示可能会让您了解如何完成此操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接