qss
:用来自定义外观的一种机制
描述
可以将其类比为css样式,但是没有css强大
- 选择器少
- 属性少
- 有些属性仅仅适用于部分控件
使用
🐖 :生成一个
.qss
文件,专门用来撰写样式表🐖 :生成一个
tool.py
文件,封装一个工具,专门用来使用样式表# 封装修改样式工具 # 定义一个专门用来操作qss样式的类 class QSSTool(): # 静态方法 @staticmethod def setQssToObj(file_path,obj): with open(file_path, 'r') as f: content = f.read() obj.setStyleSheet(content)
🐖 :可以直接在函数运行最开始使用
app.setstylesheet()
方法win = QssUse() win.show() # 设置样式 from tool import QSSTool QSSTool.setQssToObj('test.qss',app) sys.exit(app.exec_())
Qss组成
组成:
🐓:选择器:筛选控件,指明哪些控件受到样式的作用
🐖:通配符选择器
* ---匹配所有的控件
*{ background-color:yellow; border:6px dotted red; }
🐖:类型选择器
通过控件类型来匹配控件(包含子类)
QPushButton{ background-color:yellow; border:6px dotted red; }
🐖:类选择器
通过控件类型来匹配控件(不包括子类)
.QPushButton{ ... } # 只匹配所有QPushButton控件,不包含子类
🐖:ID选择器
通过ObjectName来匹配控件
QWidget#title_widget{ ... }
🐖:属性选择器
通过property来匹配控件
# 给控件设置属性 setProperty("notice_level",'xxx') #设置样式 .QLabel[notice_level]{...} .QLabel[notice_level='worning']{image:url(xxx);} .QLabel[notice_level='error']{image:url(xxx);}
🐖:后代选择器
通过父控件(直接或间接)子控件来筛选控件
🐖:子选择器
通过父控件的“直接”控件来筛选控件----父控件>子控件
# QWidget#box2>QLabel{...}
🐖:子控件选择器
用来筛选一个复合控件上的子控件----复合控件::子控件
🐖:注意
以上选择器可以组合使用,使用逗号隔开即可
🐓:伪状态:控制控件在不通状态下显示不同状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zIiYPdn4-1640325699198)(…/resuorce/image-20210905192435178.png)]
🐓:申明:指明具体样式