2014-12-16 10 views
1

Как объект макета не имеет атрибута ".setStyleSheet()", как можно задать цвет фона для данного макета?Установить цвет фона макета

Как визуальное объяснение, я могу установить как ярлык, так и цвет фона кнопки, но не весь макет, который включает в себя разделитель.

enter image description here

Programatically, я организовать какую-то информацию в горизонтальных макетов и их отображения в кадре. Я хотел бы чередовать цвета фона для каждого цикла.

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]) 

ответ

4

Вы можете просто добавить набор макетов на пустой 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) 
+0

что не устанавливает каждый макет цикла, он устанавливает весь кадр – user1938107

+0

Моя ошибка, я установил его – Yoann

+0

вы не можете использовать .addWidget() на виджете, который является контейнером – user1938107

Смежные вопросы