page contents

BreezeStyleSheets:一套为 Qt 应用准备的样式表(QSS)集合

BreezeStyleSheets 是一套为 Qt 应用准备的样式表(QSS)集合,包含 Breeze 和 BreezeDark 等主题。

attachments-2025-12-tKnNByhK6936296e2b1d4.pngBreezeStyleSheets 是一套为 Qt 应用准备的样式表(QSS)集合,包含 Breeze 和 BreezeDark 等主题。

• 不只是单纯颜色表:它有资源打包(qrc)、图标集、扩展机制,还能生成针对 PyQt5/6、PySide2/6 的资源文件。

• 目的就是让界面在不同系统、不同 DPI、不同 Qt 版本下看起来一致、漂亮、可定制。

它解决了哪些痛点

• 多平台样式不一致:原生 Qt 在 Windows / macOS / Linux 上默认风格各不同,Breeze 给你统一风格。

• 高 DPI 显示问题:主题做了兼容,图标、控件在 HiDPI 下也不容易模糊或错位。

• 主题维护难:把颜色/图标/扩展统一放到主题文件和生成脚本里,方便复用和修改。

• 第三方控件样式适配:通过扩展系统可以把 ADS(Advanced Docking System)等第三方控件也纳进来。

• 视觉细节多:覆盖了很多“奇葩”控件(比如 QCalendarWidget),测试覆盖也挺全的。

谁适合用

• 用 Qt 写桌面应用(C++/PyQt/PySide)的开发者;

• 想快速上手暗黑/浅色/自定义主题的产品或工具;

• 需要跨平台统一外观、并且关注高 DPI 的项目。

安装与快速上手(分语言/构建系统)

下面我把最常用的三种方式写清楚,方便照抄。

• 先决条件:你需要装好 Qt(QtCore/Gui/Widgets/QtSvg)。

1. Python(PyQt / PySide)

• 首选方式:使用项目自带的 configure.py 生成资源。

• 示例(生成编译后的 Python 资源):

• 配置:python configure.py --compiled-resource breeze_resources.py

• 在 PyQt5 中加载(简化版):

from PyQt5 import QtWidgets

from PyQt5.QtCore import QFile, QTextStream

import breeze_resources # 生成的资源文件

app = QtWidgets.QApplication(sys.argv)

f = QFile(":/dark/stylesheet.qss")

f.open(QFile.ReadOnly | QFile.Text)

stream = QTextStream(f)

app.setStyleSheet(stream.readAll())

• 注意:--compiled-resource 需要对应框架的 rcc(如 pyrcc5、pyside6-rcc 等)在 PATH 中。或者直接用仓库里预编译好的 resources/*。

2. CMake

• 项目里可以把 Breeze 当成子模块或通过 FetchContent 拉取,然后在构建阶段运行 Python 去生成 dist/breeze.qrc。

• 要点:CMakeLists 里开启 AUTORCC/AUTOMOC,add_library(breeze STATIC "${...}/dist/breeze.qrc"),并确保 Q_INIT_RESOURCE(breeze) 在程序里调用。

• 如果遇到“copy relocations”之类的链接问题,记得 set_property(TARGET breeze PROPERTY POSITION_INDEPENDENT_CODE ON)。

3. QMake

• 把 dist 目录里的 breeze.qrc 放到项目目录里,在 .pro 文件里加 RESOURCES = breeze.qrc 即可。

• 运行时和上面一样用 QFile 读取 :/dark/stylesheet.qss。

如何定制主题(简单流程)

• 主题用 JSON 风格的主题文件,里面定义了主背景、前景、hover、highlight、按钮色、滚动条色等等近 40 项颜色。

• 推荐做法:只改高亮色(hue),保持饱和度/亮度不变,这样整套配色会更协调。

• 定制后运行:python configure.py --styles=dark,light, --resource custom.qrc,会生成对应的样式、图标和资源文件。

扩展系统

• Breeze 有 extensions 目录,支持把像 Advanced Docking System、工具提示、标准图标集等扩进去。

• 配置时可用 --extensions=all 或者指定 extension 名称。

优点

• 视觉统一、设计感强,深浅两套都很完整。

• 支持高 DPI、跨平台一致性好。

• 扩展性强,支持把第三方控件纳入主题。

• 提供测试、lint、生成脚本,便于团队维护。

• 可生成 PyQt/PySide 的预编译资源,部署方便。

缺点 / 局限

• Qt 样式表本身的限制:某些细节(例如标准图标替换、图标随主题尺寸缩放、QToolButton 的箭头尺寸控制)无法单靠 QSS 完美解决,可能需要继承 QCommonStyle。

• 资源编译依赖 rcc,不同框架需要对应工具(pyrcc5、pyside6-rcc 等),有时会踩坑。

• 配置与构建流程对新手略复杂(尤其是 CMake 集成和 PySide6 的 rcc 问题)。

• 如果你追求极端定制(比如大量自定义控件),还是得在代码里做更多兼容适配。

小结

BreezeStyleSheets 是一个成熟、工程化的 Qt 主题解决方案。它把美观、跨平台一致和高 DPI 支持做得很好,同时提供了生成、扩展和测试流水线。上手有一点构建工作量,但一旦集成,你的应用界面立马能变得更专业、更舒适。适合想要短时间提升桌面应用视觉感受但又不想重写 UI 控件风格的团队或个人开发者。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1607 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2228 文章
  3. Pack 1607 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章