As the layout object has no attribute ".setStyleSheet()", how can one set the background color for a given layout?
As a visual explanation, I can set both the label and the button background color, but not the entire layout, which includes the spacer.
Programatically, I'm organizing some information in horizontal layouts and displaying them in a frame. I would like to alternate background colors for each loop.
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])
You could just add set the layout on an empty QWidget and set the StyleSheet on this 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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With