我花了一些时间努力使用.setStyleSheet
来改变用作窗口的QWidget的背景颜色,使用Python 3.5.2,PyQt 5.9和Qt 5.9.1。我尝试了我在网上找到的各种建议,但最终工作的是改变QWidget的对象名称,并在样式表中引用这样的名称作为id。
我的问题是,我可以依赖这种行为,还是有其他方法可以做到这一点?
工作代码:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import (QWidget, QLabel, QApplication)
class BgColorExperiment(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
QLabel('some words 一些单词', self).move(20, 0)
self.setObjectName('MainWidget')
self.setStyleSheet("""
#MainWidget {
background-color: #333;
}
.QLabel {
color: #fff;
}
""")
self.setGeometry(300, 300, 350, 100)
self.setWindowTitle('QWidget Bg Color Experiment')
self.show()
if __name__ == '__main__':
APP = QApplication(sys.argv)
EXP = BgColorExperiment()
sys.exit(APP.exec_())