import sys from PyQt5.Qt import * from qss import Qss class Window(QWidget): def __init__(self): super().__init__() self.setup_ui() def setup_ui(self): self.setWindowTitle("Qt桌面应用程序") self.resize(400, 400) self.box_layout = QVBoxLayout() self.setLayout(self.box_layout) # Qss.set_qss(self, "qss.qss") self.widget_0 = QWidget() self.widget_0.setObjectName("widget_0") self.widget_0.resize(100, 100) self.widget_0.move(500, 300) self.widget_0.show() self.widget_1 = QWidget() self.widget_1.setObjectName("widget_1") self.widget_1.setProperty("style", "widget_1") self.widget_1_box_layout = QHBoxLayout() self.widget_1.setLayout(self.widget_1_box_layout) self.widget_1_label_1 = QLabel("widget_1 标签1") self.size_policy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) self.widget_1_label_1.setSizePolicy(self.size_policy) self.widget_1_push_button_1 = QPushButton("widget_1 按钮1") self.widget_1_push_button_1.setSizePolicy(self.size_policy) self.widget_1_check_box = QCheckBox("widget_1_check_box") self.widget_1_check_box.setTristate(True) self.widget_1_push_button_1.setSizePolicy(self.size_policy) self.widget_1_box_layout.addWidget(self.widget_1_label_1) self.widget_1_box_layout.addWidget(self.widget_1_push_button_1) self.widget_1_box_layout.addWidget(self.widget_1_check_box) self.widget_2 = QWidget() self.widget_2.setObjectName("widget_2") self.widget_2.setProperty("style", "widget_2") self.widget_2_box_layout = QHBoxLayout() self.widget_2.setLayout(self.widget_2_box_layout) self.widget_2_label_1 = QLabel("widget_2 标签1") self.widget_2_label_1.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) self.widget_2_push_button_1 = QPushButton("widget_2 按钮1") self.widget_2_push_button_1.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) self.widget_2_box_layout.addWidget(self.widget_2_label_1) self.widget_2_box_layout.addWidget(self.widget_2_push_button_1) self.label_1 = QLabel("标签1") self.box_layout.addWidget(self.widget_1) self.box_layout.addWidget(self.widget_2) self.box_layout.addWidget(self.label_1) # self.label = QLabel(self) # self.label.setText("你好,世界!") if __name__ == '__main__': app = QApplication(sys.argv) Qss.set_qss(app, "qss.qss") window = Window() window.show() sys.exit(app.exec_())
-------------------------------------------------------------------------------------------------- # qss.py
class Qss(object): @staticmethod def set_qss(widget, qss): with open(qss, "r") as qss_file_handler: widget.setStyleSheet(qss_file_handler.read()) if __name__ == "__main__": pass
-------------------------------------------------------------------------------------------------- # qss.qss
/* #widget_1,#widget_2,#widget_0 { background-color:lime } .QWidget#widget_1 , .QWidget[style="widget_2"] { background-color:lime } QWidget QPushButton { background-color:lime } */ .QWidget>QCheckBox::indicator:unchecked { image: url(logo.png); } .QWidget>QCheckBox::indicator:checked { image: url(cursor.png); } QWidget[style="widget_1"] QCheckBox::indicator:indeterminate { image: url(echo_mode_text.png); }