QSS 全称 Qt Style Sheets(Qt样式表),用于美化Qt程序界面,类似于CSS,但不如CSS强大,选择器和属性较少。
本文主要介绍在PyQt5中使用QSS,但同样适用于C++ Qt,PySide6,PySide2。
本文主要介绍QSS的加载使用以及分享,QSS本身的语法详解请参考官方文档和其他教程。
Customizing Qt Widgets Using Style Sheets
Qt Style Sheets Reference
官方参考文档才是最官方全面的文档,有时间最好仔细阅读一下。
主要包括:
内容非常多,在此就不展开了。
类似CSS,QSS每一条都是由一个选择器和一组声明构成:
选择器选出要对哪种控件进行样式修改,
每个声明都是键值对,键为属性,值为属性值
QSS语法
为降低耦合,往往把QSS写在一个单独的style.qss文件中,然后在main.py的QApplication或QMainWindow中加载样式
新建一个扩展名为.qss
的文件,如style.qss,编辑内容。(本文后面有完整的样式主题、QSS编辑器推荐)
把写好的.qss添加到qrc中
创建一个加载QSS样式表的公共类:
1 2 3 4 5 6 7 8 |
PYTHON |
在代码中加载qss样式表:
1 2 3 4 5 6 7 8 9 |
PYTHON |
Qt Style Sheets Examples
Qt官方给出的一些小例子,不一定好看但有很强的学习参考性
UN-GCPDS/qt-material
This is another stylesheet for PySide6, PySide2 and PyQt5, which looks like Material Design (close enough).
“一个仿Material的样式,适用于PySide6, PySide2以及PyQt5”
浅色主题演示
深色主题演示
使用这套样式表也非常简单,作者已经打包发布到了pypi,所以我们只需要
1 |
SHELL |
安装,并在代码中import即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
PYTHON |
更多详细内容请查阅该项目的README
The most complete dark/light style sheet for Qt applications
“最完整的深色/浅色Qt主题”
文档
GitHub
containers_no_tabs_buttons
containers_no_tabs_buttons1
containers_tabs_displays
widgets_inputs_fields1
也可以通过pip直接安装使用
1 |
SHELL |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
PYTHON |
在飞扬青云的 QWidgetDemo 项目中的 styledemo 子项目包含了3套很好看的QSS样式
PS黑色
浅蓝色
扁平化白色
QSS目录链接
GTRONICK/QSS: QT Style Sheets templates
一组QSS样式
Ubuntu
MaterialDark
ElegantDark
Aqua
AMOLED
GitHub 首页
YouTube 演示与教程
注意! 此项目对应 PySide6 / PyQt6 ,而不是 PyQt5
PyDracula 深色主题
PyDracula 浅色主题
一个现代化的 GUI ,对高 DPI 有更好支持:
Qt Widgets 是一项老技术,对高 DPI 设置没有很好的支持,当您的系统应用 DPI 高于 100% 时,这些图像看起来会失真。 通过在 Qt 模块导入正下方的“main.py”中应用以下代码,您可以使用一种变通方法来最小化此问题。
1 2 3 4 5 |
PYTHON |
GitHub 首页
YouTube 展示视频
和上面的 PyDracula 是同一作者
同样是对应 PySide6 的
PyOneDark
该作者还有一个 Simple_PySide_Base 的仓库,对 PySide2 或 PyQt5 初学者如何创建一个美观的 GUI 程序是不错的参考
GitHub 主页
QtAwesome enables iconic fonts such as Font Awesome and Elusive Icons in PyQt and PySide applications.
It started as a Python port of the QtAwesome C++ library by Rick Blommers.
可以通过 conda
或者 pip
安装
1 |
SHELL |
1 |
SHELL |
QtAwesome 截图
QtAwesome 还附带一个图标浏览器,可以显示所有可用的图标。你可以使用它来搜索适合需求的图标,然后复制应该用于创建该图标的名称到代码中以应用图标
QtAwesome 图标浏览器
如果对上面推荐的这几个主题还不满意,你可以设计自己的QSS,下面推荐一些专用编辑器
GitHub首页
中文README
QssStylesheetEditor 是一个功能强大的 Qt 样式表(QSS)编辑器,支持实时预览,自动提示,自定义变量, 支持预览自定义ui代码,引用QPalette等功能。
程序主界面
自动补全功能
这个软件有如下特点:
还有许多强大而实用的功能,可以在README中查看
Cross-platform application to edit and preview Qt style sheets (QSS).
跨平台的QSS编辑/预览应用
GitHub主页
GitHub realeases
下载地址2
qsseditor-1
qsseditor-2
在Pycharm中可以安装 Qt Style Sheet Highlighter 插件,提供对QSS的代码高亮功能
Qt Style Sheet Highlighter
Qt Style Sheet Highlighter 演示
在VScode里可以安装 Qt for Python 插件,该插件不仅支持qss文件的代码高亮,还支持qml、qrc、pro等代码的高亮
Qt for Python
文章转载自:使用QSS美化PyQt5界面 - muzing的杂货铺
感谢作者的分享!