告别原始 UI 样式,拥抱 Fluent Design 风格 PyQt/PySide 组件库

简介

这是一个使用 PyQt/PySide 编写的 Fluent Design 风格的组件库,支持亮暗主题无缝切换和自定义主题色,搭配 QtDesigner 可以快速开发美观的界面。github 仓库地址为 https://github.com/zhiyiYo/PyQt-Fluent-Widgets ,演示视频可以在哔哩哔哩上观看。

Gallery

安装

轻量版 (AcrylicLabel 不可用):

pip install PyQt-Fluent-Widgets -i https://pypi.org/simple/

完整版:

pip install "PyQt-Fluent-Widgets[full]" -i https://pypi.org/simple/

如果项目中使用的是 PySide2、PySide6 或者 PyQt6,可以在 PySide2PySide6PyQt6 分支下载对应的代码。

注意
请勿同时安装 PyQt-Fluent-Widgets、PyQt6-Fluent-Widgets、PySide2-Fluent-Widgets 和 PySide6-Fluent-Widgets,因为他们的包名都是 qfluentwidgets

运行示例

安装完 pyqt-fluent-widgets 包并且下载好仓库源代码之后,可以切换到 examples 目录下运行示例代码,比如封面对应的示例代码:

cd examples/settings
python demo.py

如果遇到 ImportError: cannot import name 'XXX' from 'qfluentwidgets',这表明安装的包版本过低。可以按照上面的安装指令将 pypi 源替换为 https://pypi.org/simple 并重新安装.

在线文档

建议在使用之前阅读一下在线帮助文档,里面介绍了使用这个组件库的正确姿势,文档地址为:https://pyqt-fluent-widgets.readthedocs.io/zh_CN/latest

搭配 QtDesigner

可以运行 python ./tools/designer.py 来启动安装了 PyQt-Fluent-Widgets 插件的 QtDesigner。如果操作成功,QtDesigner 的侧边栏中将会显示 PyQt-Fluent-Widgets 的组件,建议使用虚拟环境。对于旧项目的改造,推荐使用 视频教程 中介绍的 提升为...

部分组件展示

下拉框

下拉框

颜色对话框

颜色对话框

消息框

这个无边框消息框 Dialog 是否圆角取决于操作系统,比如 Win10 就会是尖角。

消息框

带遮罩的消息框

带遮罩的消息框

Win10 风格的消息框

Win10 风格消息框

侧边导航

侧边导航

滑块中空的滑动条

滑块中空的滑动条

圆角阴影菜单

圆角阴影菜单

进度提示条

进度提示条

开关按钮

开关按钮

工具提示

工具提示

许可证

PyQt-Fluent-Widgets 和 PyQt6-Fluent-Widgets 使用 GPLv3 许可证。

PySide6-Fluent-Widgets 和 PySide2-Fluent-Widgets 使用双许可证。非商业用途使用 GPLv3 许可证进行授权,商用请在 爱发电 或者 ko-fi 上进行购买以支持作者的开发。

Copyright © 2021 by zhiyiYo.

<think>好的,我现在需要回答用户关于PySide6的特点、功能特性和优势的问题。首先,我得先回顾一下用户提供的引用内容,看看里面有哪些相关信息。 用户给出的引用里,引用[1]提到PySide6更贴近Qt的原生设计,而引用[2]指出PySide6和PyQt6在API和功能上非常相似,支持Qt的核心功能如QWidgets、QML、信号槽等。引用[3]提到系统使用PySide6作为GUI库,提供直观友好的界面。此外,引用[2]还提到PySide6有长期的官方支持优势。 接下来,我需要将这些信息组织起来,分点说明PySide6的特点、功能特性和优势。可能需要分成几个部分,比如官方支持、API设计、跨平台能力、功能模块、信号与槽机制、与Qt的兼容性等。同时,要注意使用中文,并正确应用LaTeX格式,虽然这里可能数学公式较少,但如果有的话需要按规则处理。 用户可能希望了解PySide6相比其他库(如PyQt6)的优势,所以在优势部分需要对比两者的不同,如商业许可、社区支持等。同时,功能特性需要详细列出支持的模块,比如QWidgets、QML、多线程等。 还要注意引用标注,在相关部分末尾加上对应的引用标记。例如,提到官方支持时引用[2],提到API设计时引用[1]和[2]。 可能需要检查是否有遗漏的信息,比如引用[3]提到的用户界面设计,可以归入功能特性中的模块支持部分。引用[4]和[5]似乎与PySide6关系不大,可能不需要涉及。 最后,生成相关问题时要围绕PySide6的特点展开,比如与PyQt6的对比、应用场景、入门教程等。</think>### PySide6 主要特点与功能特性 #### 1. **官方支持与开源协议** - **LGPL 许可**:PySide6 采用宽松的 LGPL 协议,允许商业闭源使用而无需公开代码,这对企业开发者更友好[^2]。 - **长期维护**:作为 Qt 官方维护的 Python 绑定库,PySide6 享有长期更新和技术支持。 #### 2. **与 Qt 原生 API 高度一致** - PySide6 的 API 设计贴近 Qt 原生 C++ 接口,开发者可无缝迁移 Qt 文档中的代码示例[^1]。 - 支持 Qt 所有核心模块,包括: - **GUI 组件**:QWidgets、QML、Qt Quick - **基础功能**:信号与槽机制、事件系统、多线程(QThread) - **高级功能**:OpenGL 集成、网络通信(Qt Network)、数据库访问(Qt SQL)[^2][^3] #### 3. **跨平台能力** - 支持 Windows、Linux、macOS、Android 和 iOS,满足多端开发需求。 - 自动适配不同操作系统的原生控件风格,例如 WindowsFluent Design 或 macOS 的 Aqua 风格。 #### 4. **功能特性** - **现代 UI 开发**:通过 Qt Quick 实现动态响应式界面,支持 2D/3D 混合渲染。 - **数据可视化**:集成 Qt Charts 和 Qt Data Visualization 模块,可直接绘制复杂图表。 - **国际化支持**:内置 Unicode 和多语言翻译工具(如 `tr()` 方法)。 - **SVG 支持**:兼容矢量图形显示,适用于高分辨率屏幕适配[^5]。 #### 5. **信号与槽机制** - 采用 Qt 特有的通信机制,简化组件间交互: ```python button.clicked.connect(lambda: print("按钮被点击")) ``` - 支持自定义信号,实现低耦合度设计。 --- ### PySide6 的核心优势 | 对比维度 | PySide6 优势 | |----------------|-----------------------------------------------------------------------------| | **商业友好性** | 无需支付商业授权费用,适合商业闭源项目 | | **开发体验** | API 命名规范与 Qt 文档一致,学习成本低[^1] | | **兼容性** | 支持 Qt 6 全系功能,如 Vulkan 渲染、高级样式表(QSS) | | **扩展性** | 可通过 C++ 编写 Qt 扩展模块后,利用 Shiboken 工具生成 Python 绑定接口[^2] | --- ### 典型应用场景 1. **工业控制软件**:利用跨平台特性部署到嵌入式设备 2. **数据仪表盘**:通过 Qt Charts 实现实时数据可视化 3. **多媒体应用**:基于 QMediaPlayer 开发音视频播放器 4. **安全系统**:结合登录管理模块保障用户身份验证[^4] ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值