我想更改 PyQt 中应用程序的外观。例如,我希望所有文本(按钮、标签等)都是白色的,所有按钮都是某种颜色。 我可以在主窗口中一次性更改所有内容吗?
我执行了以下操作来更改整个应用程序的背景颜色:
self.setStyleSheet("QMainWindow {background-color: #252526; color: #FFFFFF}")
如果我以相同的方式为 QPushButton 设置另一个样式表,则 QMainWindow 的样式将被覆盖。
您可以在 QApplication 实例上调用 setStyleSheet() 方法并指定 CSS 字符串中的所有对象名称:
app = QtGui.QApplication.instance()
app.setStyleSheet('QLabel{color: #fff;} QPushButton{background-color: #000; color: #fff}')
今天寻找解决方案的人我使用了下面的代码。唯一的缺点是当您禁用小部件时,您将需要手动更改颜色。
from PyQt6.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QVBoxLayout, QFrame
STYLE_SHEET = """
QWidget
{
color: red;
}
"""
class Win(QMainWindow):
def __init__(self):
super(QMainWindow, self).__init__()
layout = QVBoxLayout()
container = QFrame()
container.setLayout(layout)
self.setCentralWidget(container)
lbl = QLabel("Click this button:")
layout.addWidget(lbl)
btn = QPushButton("Hello World")
layout.addWidget(btn)
self.show()
if __name__ == "__main__":
app = QApplication([])
app.setStyleSheet(STYLE_SHEET)
win = Win()
app.exec()