由于布局对象没有属性" .setStyleSheet()",如何设置给定布局的背景颜色?
作为一个直观的解释,我可以设置标签和按钮背景颜色,但不能设置整个布局,包括间隔。
以编程方式,我在水平布局中组织一些信息并在框架中显示它们。我想为每个循环替换背景颜色。
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])
答案 0 :(得分:6)
您可以在空的QWidget上添加布局设置,并在此小部件上设置StyleSheet。
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)