如何在不影响滚动条颜色的情况下更改 QScrollArea 的背景颜色?
How to change the background color of a QScrollArea without affecting the scrollbar color?
我正在使用
self.setStyleSheet("background-color: white")
在 PyQt5 中更改 QScrollArea 的背景颜色,但这也会影响滚动条。仅更改区域背景颜色的正确方法是什么?
import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QLabel, QVBoxLayout, QScrollArea)
class TaskListWidget(QScrollArea):
def __init__(self):
super().__init__()
self.content = QWidget()
self.layout = QVBoxLayout(self.content)
for _ in range(20):
self.layout.addWidget(QLabel("task"))
self.setWidget(self.content)
self.setStyleSheet("background-color: white")
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.tasklist = TaskListWidget()
self.windowLayout = QVBoxLayout()
self.windowLayout.addWidget(self.tasklist)
self.setLayout(self.windowLayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()
一种可能的解决方案是将 QScrollBar 的背景颜色设置为 None。
self.setStyleSheet(
"""
QWidget{ background-color: white }
QScrollBar{ background-color: none }
"""
)
我正在使用
self.setStyleSheet("background-color: white")
在 PyQt5 中更改 QScrollArea 的背景颜色,但这也会影响滚动条。仅更改区域背景颜色的正确方法是什么?
import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QLabel, QVBoxLayout, QScrollArea)
class TaskListWidget(QScrollArea):
def __init__(self):
super().__init__()
self.content = QWidget()
self.layout = QVBoxLayout(self.content)
for _ in range(20):
self.layout.addWidget(QLabel("task"))
self.setWidget(self.content)
self.setStyleSheet("background-color: white")
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.tasklist = TaskListWidget()
self.windowLayout = QVBoxLayout()
self.windowLayout.addWidget(self.tasklist)
self.setLayout(self.windowLayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()
一种可能的解决方案是将 QScrollBar 的背景颜色设置为 None。
self.setStyleSheet(
"""
QWidget{ background-color: white }
QScrollBar{ background-color: none }
"""
)