083.PyQt5_QSS样式控制

  

我 的 个 人 主 页: 失心疯的个人主页
入 门 教 程 推 荐 : Python零基础入门教程合集
虚 拟 环 境 搭 建 : Python项目虚拟环境(超详细讲解)
PyQt5 系 列 教 程: Python GUI(PyQt5)文章合集
Oracle数据库教程: Oracle数据库文章合集
优 质 资 源 下 载 : 资源下载合集

QSS样式控制

  • 概念
    • QSS:Qt Style Sheet
    • Qt样式表
    • 用来自定义控件外观的一种机制
    • 可以将其类比CSS,但是没有CSS强大
      • 选择器少
      • 属性少
      • 有些属性仅使用部分控件
  • 使用
  • 局部设置
    • 指定需要设置外观的控件,调用该控件的setStyleSheet方法
      widget.setStyleSheet(qss_sheet_str)
    • 参考作用范围:
      • 控件本身
      • 子控件
    • 最终作用范围
      • 通过选择器二次筛选
        widget.setStyleSheet('QPushButton {background-color:cyan;}')
  • 全局设置
    • 指定全局的QApplication对象,调用对应的setStyleSheet方法
      app.setStyleSheet(qss_sheet_str)
    • 参考作用范围:应用程序所有控件
    • 最终作用范围:通过选择器二次筛选
  • 使用示例
  • 创建test.qss文件
    QPushButton#b1 {
        background-color:cyan;
    }
    
    QLabel {
        background-color:red;
    }
    
  • 创建主程序
    from PyQt5.Qt import *
    import sys
    
    class Windows(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle('QSS-初体验')
            self.resize(500, 500)
            self.widget_list()
    
        def widget_list(self):
            self.add_widget()
    
    
        def add_widget(self):
            w1 = QWidget()
            lab1 = QLabel('标签1', w1)
            btn1 = QPushButton('按钮1', w1)
            btn1.setObjectName('b1')
    
            lab1.move(100, 50)
            btn1.move(200, 50)
    
            w2 = QWidget()
            lab2 = QLabel('标签2', w2)
            btn2= QPushButton('按钮2', w2)
    
            lab2.move(100, 50)
            btn2.move(200, 50)
    
            v_layout = QVBoxLayout()
            self.setLayout(v_layout)
            v_layout.addWidget(w1)
            v_layout.addWidget(w2)
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        window = Windows()
    
        with open('test.qss','r') as f:
            result = f.read()
            app.setStyleSheet(result)
    
        window.show()
        sys.exit(app.exec_())
    
  • 效果如图
    • 083.PyQt5_QSS样式控制_第1张图片

你可能感兴趣的:(PyQt5,pyqt5,python,gui,python,pyqt,qt)