网站首页 > 博客文章 正文
QSS的全称是Qt Style Sheets,顾名思义Qt样式表。Qt样式表是一种强大的机制,除了通过子类化QStyle已经可以实现的功能外,还允许您自定义窗口小部件的外观。 Qt样式表的概念,术语和语法受到HTML级联样式表(CSS)的启发,QSS是应用于Qt的窗体中。在PyQt5中为了更快捷的绘制界面,UI desinger中同样提供了一个快捷的方法。
Ui designer的编辑对话框
QSS句法格式
- 一般的句法格式
- QTextEdit:是一个选择器,代表这个窗口内的所有QTextEdit控件。
- font:QTextEdit的属性,冒号后面的是值。
- 每一条样式由“ 属性:值” 组成,两条样式用“;”隔开。
QTextEdit{
font: 12pt "华文楷体";
color: rgb(85, 255, 255);
background-color: rgb(85, 255, 255);
}
- 选择器类型
Qt样式表支持CSS2中定义的所有选择器。下表总结了最有用的选择器类型。
这些类型选择可以组合使用
QPlainTextEdit,QTextEdit, QLineEdit{"
font: 12pt \"华文楷体\";
color: rgb(85, 255, 255);
background-color: rgb(85, 255, 255);
"}
- 子控件
为了设置复杂小部件的样式,有必要访问小部件的子控件,例如QComboBox的下拉按钮或QSpinBox的向上和向下箭头。选择器可能包含子控件,可以将规则的应用限制为特定的窗口小部件子控件。例如:
名称为comboBox_2的向上箭头更改为文件夹中的图片。
QComboBox#::drop-down{image: url(C:/Users/12057/Desktop/PyQt5/Demo_22/image/向下.png);}
常用的子控件
- ::down-arrow combo box或spin box的下拉箭头
- ::down-button spin box的向下按钮
- ::drop-down combo box的下拉箭头
- ::indicator checkbox、radio button或可选择group box的指示器
- ::item menu、menu bar或status bar的子项目
- ::menu-indicator push button的菜单指示器
- ::title group box的标题
- ::up-arrow spin box的向上箭头
- 伪状态
选择器可能包含伪状态,表示根据窗口小部件的状态限制规则的应用。伪状态出现在选择器的末尾,中间有冒号(:)。例如,当鼠标悬停在QLabel上时,变成红色。
QLabel#label_2:hover{color:red;}
伪状态可以串联使用,就是类似一个与运算,例如:
如果鼠标移动到一个已经被勾选的checkBox上方时候,其字体变为红色。
QCheckBox:hover:checked{color: red}
伪状态可以并联使用,就是类似一个与或运算,例如:
如果鼠标移动到上方,或者已经被勾选,字体变为红色。
QCheckBox:hover,QCheckBox:checked{color: red}
子控件也可以使用伪状态,例如:
名称为checkBox_2的indicator子控件在check和unchecked的时候显示不同的的图片
#checkBox_2::indicator:checked{image:url(C:/Users/12057/Desktop/PyQt5/Demo_22/image/已经选择.png);}
QCheckBox#checkBox_2::indicator:unchecked{image:url(C:/Users/12057/Desktop/PyQt5/Demo_22/image/未被.png);}
QSS样式表使用
- 如何使用
第一种方法,就是在UI designer中通过编辑框,对当前窗口设置样式表。但是有多个的窗口时候,需要重复设计,工作量很大。
第二种方法,就是新建一个qss文件,读取这个文件中的内容,调用setStyleSheet函数就可以。
QWidget{
background-color: rgb(255, 255, 255);
font: 12pt "BankGothic Lt BT";
}
QPlainTextEdit,QTextEdit, QLineEdit{
font: 12pt "华文楷体";
color: rgb(85, 255, 255);
background-color: rgb(85, 255, 255);
}
QCheckBox#checkBox_2::indicator:checked{
image:url(C:/Users/12057/Desktop/PyQt5/Demo_22/image/已经选择.png);
}
QCheckBox#checkBox_2::indicator:unchecked{
image:url(C:/Users/12057/Desktop/PyQt5/Demo_22/image/未被选择.png);
}
if __name__ == '__main__':
app = QApplication(sys.argv)
file = QFile("Qobj.qss")
file.open(QFile.ReadOnly)
style = file.readAll().data().decode("UTF-8")
app.setStyleSheet(style)
mainWindow = MainWindow()
mainWindow.show()
sys.exit(app.exec_())
- 样式的明确定义
多条样式对同一个属性定义了不同的值以后,就会出现冲突,这个label_2的颜色为红色,其余的为绿色。
self.setStyleSheet('''QLabel#label_2:hover{ color:red;}''')
self.setStyleSheet("QLabel:hover{color:green;}")
本篇介绍PyQt5的QSS样式表,如果需要源代码可关注私聊,感谢支持!!!!
猜你喜欢
- 2024-10-24 Qt Examples——QSlider(qt qcompleter)
- 2024-10-24 正点原子I.MX6U嵌入式Qt开发指南:第七章《Qt控件 2》
- 2024-10-24 销售订单管理,Excel表格模板演示
- 2024-10-24 抓大放小,瞅瞅 Qt 的几个基础模块
- 2024-10-24 WPF --- 如何重写WPF原生控件样式?
- 2024-10-24 Python入坑系列-pyside6桌面编程之border边框
- 2024-10-24 1.3 MyFirstWidget代码讲解及实用编程技巧分享
- 2024-10-24 C#知识|.Net控件二次封装之ComboBox下拉框
- 2024-10-24 在WPF 中想要在表格的同一列上显示多个表头
- 2024-10-24 Qt模型视图结构_代理(犀牛缩放视图后看不见模型了)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)