PyQt5之样式控制

1.描述

采用Qss来自定义控件外观。

可以类别CSS,但没有CSS强大

2.使用方式

  1. 局部设置

    指定需要设置外观的控件,调用该控件的setStyleSheet方法

    widget.setStyleSheet(qss_sheet_str)
    
  2. 全局设置

    指定全局的QApplication对象,调用对应的setStyleSheet方法

    app.setStyleSheet(qss_sheet_str)
    
  3. 外部引入

    # 1.在文件外部新建一个qss文件,在里面写入样式代码
    # 2.读取qss文件
    with open("test.qss", "r") as f:
        content = f.read()
        # 3.将样式绑定到全局
        app.setStyleSheet(content)
    

3.QSS语法

(1) 选择器

  • 通配符选择器

    使用*来匹配所有控件

    *{
         
         
        
    }
    
  • 类型选择器

    通过控件类型来匹配控件(包括子类)

    QPushButton{
         
         
        
    }
    
  • 类选择器

    通过控件类型来匹配控件(不包括子类)

    .QPushButton{
         
         
        
    }
    
### PyQt5 样式控制教程 #### 使用样式表自定义控件外观 PyQt5 支持通过样式表来自定义应用程序中各个部件的视觉效果。样式表基于CSS,允许开发者轻松改变界面的颜色、字体和其他属性。 对于无法直接在 Qt Designer 中设置样式的组件,可以通过编程方式应用样式表来实现更精细的设计[^4]: ```python self.progressBar.setStyleSheet(""" QProgressBar { border: 2px solid #2196F3; border-radius: 5px; background-color: #FFFFFF; } QProgressBar::chunk { background-color: #2196F3; width: 10px; margin: 0.5px; } """) ``` 此代码片段展示了如何为进度条 (`QProgressBar`) 设置边框颜色、圆角半径以及填充部分(`chunk`) 的背景色和宽度等特性。 #### 应用全局样式表 除了单独给每个控件设定样式外,还可以在整个应用程序范围内统一风格。这通常是在创建 `QApplication` 实例之后立即完成: ```python app = QApplication([]) app.setStyleSheet(''' QWidget { font-size: 14pt; color: white; background-color: black; } ''') ``` 这段脚本会使得所有窗口小部件默认采用白色文字配黑色背景,并且字号被调整到14磅大小[^3]。 #### 动态更改样式 有时候可能希望根据用户的交互或其他条件动态更新某些UI元素的样子。这时可以利用信号槽机制,在特定事件发生时重新加载新的样式字符串。 例如当按钮点击触发后改变其文本颜色: ```python def change_button_color(button): current_style = button.styleSheet() new_style = f"{current_style} QPushButton {{color:red}}" button.setStyleSheet(new_style) button.clicked.connect(lambda :change_button_color(button)) ``` 上述函数会在每次按下指定按钮时将其文字变为红色显示[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值