QT透明布局

时间:2010-06-05 13:33:08

标签: qt transparency

我使用垂直布局(QVBoxLayout)来管理按钮。我想将其背景颜色设为50%黑色透明。有可能吗?

SW

2 个答案:

答案 0 :(得分: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)

设置应用程序范围的样式表

答案 1 :(得分:2)

嗯...自从我使用Qt已经有一段时间了,但据我所知,QVBoxLayout没有背景颜色,所以不,这是不可能的。布局不是小部件,根本没有绘制,它只管理子小部件大小。

如果您想创建彩色布局,您可能需要创建一个具有您想要的任何颜色的窗口小部件,然后将父QVBoxLayout创建到该窗口小部件。

如果你想让所有布局的孩子的颜色受QVBoxLayout父母的颜色影响会变得更有趣,但我认为来自Qt4演示的“嵌入式对话”演示可能会让你知道如何做到这一点。