1. 程式人生 > 其它 >11.1 三種典型的PyQt5引用QSS程式碼方法介紹

11.1 三種典型的PyQt5引用QSS程式碼方法介紹

一、三種典型的PyQt5引用QSS程式碼方法介紹

1.基本知識

  • 第一種一般用於臨時定義控制元件樣式的時候
  • 第二種主要用於單個檔案中使用到某些樣式,又不至於太過複雜
  • 第三種主要用於整個專案的樣式開發

2.類別

  • 區域性設定
    第一種:

第二種:

  • 全域性設定
    第一種:

第二種:

3.程式碼

from PyQt5.Qt import *
import sys


class Window(QWidget) :
    def __init__(self) :
        super().__init__()
        self.setWindowTitle("QSS樣式載入方法 - PyQt5中文網")
        self.resize(600, 500)
        self.func_list()

    def func_list(self) :
        self.func()

    def func(self) :
        # 區域性設定
        label1 = QLabel('標籤1', self)
        # label1.setStyleSheet('background-color:green;')
        label1.move(100, 200)
        label1.resize(70, 30)

        label2 = QLabel('標籤2', self)
        # label2.setStyleSheet('color:red;')
        label2.move(200, 200)
        label2.resize(70, 30)

        label3 = QLabel('標籤3', self)
        # label3.setStyleSheet('background-color:yellow;font-size:30px;')
        label3.move(300, 200)
        label3.resize(70, 30)


        btn1 = QPushButton('按鈕1', self)
        btn1.move(100, 100)
        btn1.resize(70, 30)
        btn2 = QPushButton('按鈕2', self)
        btn2.move(200, 100)
        btn2.resize(70, 30)

        #區域性設定
        # btn1.setStyleSheet('''
        #     QPushButton{
        #             color:red;
        #         }
        #     QPushButton:hover{
        #             background-color: green;
        #         }
        # ''')

        # QSS檔案載入
        btn3 = QPushButton('按鈕3', self)
        btn3.setProperty('name', 'btn') #對應下面的全域性設定
        btn3.move(100, 300)
        btn3.resize(70, 30)
        btn4 = QPushButton('按鈕4', self)#對應下面的全域性設定
        btn4.setObjectName('btn')
        btn4.move(200, 300)
        btn4.resize(70, 30)


if __name__ == '__main__' :
    app = QApplication(sys.argv)
    window = Window()

    # with open('index.qss', 'r', encoding='UTF-8') as f:
    #     print('開啟檔案')
    #     app.setStyleSheet(f.read())

    QssStyle = '''
            QPushButton:hover{
                    background-color: green;
                }
            QPushButton[name="btn"]:hover{
                    background-color: red;
                }
            QPushButton#btn:hover{
                    background-color: green;
                    color:red;
                }
            '''
    # # 全域性設定
    window.setStyleSheet(QssStyle)  # 當前視窗全域性有效

    window.show()
    sys.exit(app.exec_())

4.執行效果