设置布局的背景色

2024-06-17 18:54:31 发布

您现在位置:Python中文网/ 问答频道 /正文

由于布局对象没有属性“.setStyleSheet()”,如何设置给定布局的背景色?

作为视觉解释,我可以设置标签和按钮的背景色,但不能设置整个布局,包括间隔。

enter image description here

在程序上,我将一些信息组织成水平布局并在一个框架中显示出来。我想为每个循环交替使用背景色。

for param_name in parameters:
    hlayouts.append(QtGui.QHBoxLayout())
    labels.append(QtGui.QLabel("%s"%param_name))
    sliders.append(QtGui.QSpacerItem(10,10,hPolicy=QtGui.QSizePolicy.Expanding))
    spins.append(QtGui.QDoubleSpinBox())

    spins[index].setValue(float(values.get(param_name)))
    labels[index].setStyleSheet("background-color:black;")
    spins[index].setStyleSheet("background-color:black;")

    hlayouts[index].addWidget(labels[index])
    hlayouts[index].addItem(sliders[index])
    hlayouts[index].addWidget(spins[index])

    index += 1

vlayout = QtGui.QVBoxLayout()
for i in range(len(hlayouts)):
    vlayout.addLayout(hlayouts[i])

Tags: nameinforindexlabelsparam布局background
1条回答
网友
1楼 · 发布于 2024-06-17 18:54:31

您可以在一个空的QWidget上添加set布局并在这个widget上设置样式表。

for index, param_name in enumerate(parameters):
    container = QtGui.QWidget(self)
    layout = QtGui.QHBoxLayout(container )

    hlayouts.append(container)
    labels.append(QtGui.QLabel("%s"%param_name))
    sliders.append(QtGui.QSpacerItem(10,10,hPolicy=QtGui.QSizePolicy.Expanding))
    spins.append(QtGui.QDoubleSpinBox())

    spins[index].setValue(float(values.get(param_name)))
    container.setStyleSheet("background-color:black;")

    layout.addWidget(labels[index])
    layout.addItem(sliders[index])
    layout.addWidget(spins[index])


vlayout = QtGui.QVBoxLayout(self)
for widget in hlayouts:
    vlayout.addWidget(widget)

相关问题 更多 >