2017-11-02 2 views
1

Ich mache einen Scroll-Bereich, aber ich möchte die Farbe des Bereichs im Scroll-Bereich ändern. Ich habe versucht, ein Stylesheet zu verwenden, aber das änderte letztendlich die Farben aller Widgets, die ich im Bildlaufbereich hinzugefügt hatte.Pyside: Einstellen der Hintergrundfarbe für QScrollArea

Gibt es eine Möglichkeit, die Farbe zu ändern, ohne Stylesheets zu verwenden?

container = QtWidgets.QWidget() 
self.list_layout = QtWidgets.QVBoxLayout(spacing=1, margin=2) 

container.setLayout(self.list_layout) 
scroll = QtWidgets.QScrollArea() 
scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn) 
scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) 
scroll.setWidgetResizable(True) 
scroll.setWidget(container) 
scroll.setStyleSheet('background-color: #D8D8D8') 

grid_layout.addWidget(scroll, 2, 0, 1, -1) 

Antwort

0

Sie müssen nur Klassen von Widget angeben, welche die Sheet Regel gelten:

scroll.setStyleSheet('QScrollArea {background-color: #D8D8D8}') 

Oder zu werden noch spezifischere, verwenden Sie ein Objekt-Name:

scroll.setObjectName('myscrollarea') 
scroll.setStyleSheet('#myscrollarea {background-color: #D8D8D8}') 

Eine vollständige Liste der qss-Selektoren finden Sie unter Style Sheet Reference.

Verwandte Themen