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_())
    
  • 效果如图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失心疯_2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值