Pyside:设置QScrollArea的背景颜色

Pyside: setting the background color for QScrollArea

我正在制作滚动区域,但我想更改滚动区域内包含的区域的颜色。我尝试使用样式表,但最终改变了我在滚动区域内添加的所有小部件的颜色。

有没有不用样式表改变颜色的方法?

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)

您只需指定要将样式表规则应用于哪个 类 小部件:

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

或者,更具体地说,使用对象名称:

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

有关 qss 选择器的完整列表,请参阅 Style Sheet Reference