文章目录
样式控制
一、 简介
1、 基本概念
QSS —— Qt 样式表
语法:
选择器:伪状态 {
声明
}
用来自定义控件外观的一种机制
可以将其类比CSS;但是没有CSS强大
- 选择器少
- 属性少
- 有些属性仅适用部分控件
2、 使用
2.1 局部设置
指定需要设置外观的控件,调用该控件的 setStyleSheet(qss_sheet_str)
参考作用范围:
- 控件本身
- 子控件
最终作用范围:
- 通过选择器二次筛选
2.2 全局设置
指定全局的 QApplication 对象,调用 app.setStyleSheet(qss_sheet_str)
参考作用范围:
- 应用程序所有控件
最终作用范围:
- 通过选择器二次筛选
app = QApplication(sys.avgs)
# text.qss 是我们保存的样式表
with open("text.qss", "r") as f:
content = f.read()
app.setStyleSheet(content)
二、 QSS 样式表
1、 QSS 选择器
作用:指明哪些控件会受到样式的作用
1.1 通配符选择器
使用 *
来匹配对象内所有的控件
* {
background-color: red;
}
1.2 类型选择器
通过控件类型来匹配控件(包含子类)
QWidget {
background-color: red; /* 匹配所有的 QWidget 控件,包括继承了 QWidget 类的子类 */
}
QPushButton {
background-coloc: red; /* 匹配所有的 QPushButton 控件,包括继承了 QPushButton 类的子类 */
}
1.3 类选择器
通过控件类型来匹配控件(不包含子类)
.QPushButton {
background-color: red; /* 匹配所有的 QPushButton 控件,不包含子类 */
}
1.4 ID 选择器
通过 objName 来匹配控件,注意其与CSS选择器里面的ID不一样,它可以有多个
#hehe {
background-color: red; /* 匹配 setObjectName("hehe") 的控件 */
}
1.5 属性选择器
通过属性值来匹配控件
QPushButton[name="warning"] {
background-color: red; /* 匹配 QPushButton类型控件内, setProperty("name", "warning") 的控件 */
}
QPushButton[name] {
background-color: red; /* 匹配 QPushButton类型控件内,拥有属性name这个键的控件 */
}
1.6 后代选择器
通过父控件的(直接或间接)子控件来筛选控件
QDialog QPushButton {
background-color: red; /* 只匹配所有QDialog中包含的QPushButton 控件 */
}
1.7 子选择器
通过父控件的(直接)子控件来筛选控件
QDialog>QPushButton {
background-color: red; /* 只匹配所有QDialog中,其儿子QPushButton控件,不包含孙子 */
}