PyQt5样式控制如何实现详细教程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4032个文字,预计阅读时间需要17分钟。
目录+样式控制+一、简介+1、基本概念+2、使用+2.1、局部设置+2.2、全局设置+二、QSS+1、QSS样式表+1.1、通配符选择器+1.2、类型选择器+1.3、类选择器+1.4、ID选择器+1.5、属性选择器+1.6、后代选择器
目录- 样式控制
- 一、 简介
- 1、 基本概念
- 2、 使用
- 2.1 局部设置
- 2.2 全局设置
- 二、 QSS 样式表
- 1、 QSS 选择器
- 1.1 通配符选择器
- 1.2 类型选择器
- 1.3 类选择器
- 1.4 ID 选择器
- 1.5 属性选择器
- 1.6 后代选择器
- 1.7 子选择器
- 1.8 子控件选择器
- 2、 QSS 伪状态
- 2.1 描述
- 2.2 常见伪状态
- 3、 QSS 声明
- 3.1 背景属性
- 3.2 边框属性
- 3.3 box 属性
- 3.4 字体属性
- 3.5 外边距属性
- 3.6 内边距属性
- 3.7 定位属性
- 3.8 文本属性
- 1、 QSS 选择器
- 一、 简介
QSS —— Qt 样式表
语法:
选择器:伪状态 {
声明
}
用来自定义控件外观的一种机制
可以将其类比CSS;但是没有CSS强大
- 选择器少
- 属性少
- 有些属性仅适用部分控件
指定需要设置外观的控件,调用该控件的 setStyleSheet(qss_sheet_str)
参考作用范围:
- 控件本身
- 子控件
最终作用范围:
- 通过选择器二次筛选
指定全局的 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控件,不包含孙子 */
}
1.8 子控件选择器
用来筛选一个复合控件上的子控件
QCheckBox::indicator {
image: path; /* 设置复选框前面的选择图标,语法:复合控件::子控件 */
}
常见子控件
作用:限制控件只能在某种状态下,被样式表作用
语法:选择器:伪状态
2.2 常见伪状态3、 QSS 声明不同的控件可能有某种特定的伪状态,无法通用,具体查看官方文档
!表示否,与当前状态相反可以连续使用:
:hover:checked:鼠标在控件上面,并且选中时
QSS的强大在于组合功能的强大,这里只是简单介绍基本功能,将简单功能组合起来才能实现好看的效果
3.1 背景属性本文共计4032个文字,预计阅读时间需要17分钟。
目录+样式控制+一、简介+1、基本概念+2、使用+2.1、局部设置+2.2、全局设置+二、QSS+1、QSS样式表+1.1、通配符选择器+1.2、类型选择器+1.3、类选择器+1.4、ID选择器+1.5、属性选择器+1.6、后代选择器
目录- 样式控制
- 一、 简介
- 1、 基本概念
- 2、 使用
- 2.1 局部设置
- 2.2 全局设置
- 二、 QSS 样式表
- 1、 QSS 选择器
- 1.1 通配符选择器
- 1.2 类型选择器
- 1.3 类选择器
- 1.4 ID 选择器
- 1.5 属性选择器
- 1.6 后代选择器
- 1.7 子选择器
- 1.8 子控件选择器
- 2、 QSS 伪状态
- 2.1 描述
- 2.2 常见伪状态
- 3、 QSS 声明
- 3.1 背景属性
- 3.2 边框属性
- 3.3 box 属性
- 3.4 字体属性
- 3.5 外边距属性
- 3.6 内边距属性
- 3.7 定位属性
- 3.8 文本属性
- 1、 QSS 选择器
- 一、 简介
QSS —— Qt 样式表
语法:
选择器:伪状态 {
声明
}
用来自定义控件外观的一种机制
可以将其类比CSS;但是没有CSS强大
- 选择器少
- 属性少
- 有些属性仅适用部分控件
指定需要设置外观的控件,调用该控件的 setStyleSheet(qss_sheet_str)
参考作用范围:
- 控件本身
- 子控件
最终作用范围:
- 通过选择器二次筛选
指定全局的 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控件,不包含孙子 */
}
1.8 子控件选择器
用来筛选一个复合控件上的子控件
QCheckBox::indicator {
image: path; /* 设置复选框前面的选择图标,语法:复合控件::子控件 */
}
常见子控件
作用:限制控件只能在某种状态下,被样式表作用
语法:选择器:伪状态
2.2 常见伪状态3、 QSS 声明不同的控件可能有某种特定的伪状态,无法通用,具体查看官方文档
!表示否,与当前状态相反可以连续使用:
:hover:checked:鼠标在控件上面,并且选中时
QSS的强大在于组合功能的强大,这里只是简单介绍基本功能,将简单功能组合起来才能实现好看的效果
3.1 背景属性
