PyQt-Fluent-Widgets 极速上手:从安装到第一个 Fluent 界面仅需 5 分钟
你是否还在为 PyQt 界面设计繁琐而烦恼?是否想快速开发出具有现代美感的桌面应用?本文将带你极速上手 PyQt-Fluent-Widgets,从环境搭建到实现第一个 Fluent 风格界面,全程只需 5 分钟。读完本文,你将掌握库的安装方法、核心窗口组件使用,以及如何快速构建符合微软 Fluent Design 设计规范的界面。
环境准备与安装
PyQt-Fluent-Widgets 支持 Python 3.7 及以上版本,兼容 PyQt5 和 PySide2/PySide6。推荐使用 pip 工具进行安装,确保网络环境良好,执行以下命令:
pip install PyQt-Fluent-Widgets -i https://pypi.tuna.tsinghua.edu.cn/simple
若需指定版本,可添加版本号,如 PyQt-Fluent-Widgets==1.0.0。安装完成后,可通过 import qfluentwidgets 验证是否成功。项目详细安装说明可参考 README.md。
核心窗口组件解析
PyQt-Fluent-Widgets 提供了多种预置窗口类型,其中 FluentWindow 是构建应用的基础。该类封装了导航栏、标题栏和内容区域,支持多种显示模式切换。核心实现位于 qfluentwidgets/window/fluent_window.py,关键特性包括:
- 内置云母效果(Windows 11 支持),提供半透明磨砂质感
- 自适应明暗主题切换
- 可折叠导航栏,支持多种显示模式
- 内置页面切换动画
以下是 FluentWindow 类的简化结构:
class FluentWindow(FluentWindowBase):
def __init__(self, parent=None):
super().__init__(parent)
self.setTitleBar(FluentTitleBar(self))
self.navigationInterface = NavigationInterface(self, showReturnButton=True)
# 布局初始化代码...
def addSubInterface(self, interface, icon, text, position=NavigationItemPosition.TOP):
# 添加子界面实现...
五分钟实现第一个界面
以下是一个完整的 Fluent 风格界面示例,实现了包含两个子界面的应用窗口。创建 demo.py 文件,输入以下代码:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from qfluentwidgets import FluentWindow, NavigationItemPosition, FluentIcon
class HomeInterface(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setObjectName("homeInterface")
layout = QVBoxLayout(self)
layout.addWidget(QLabel("欢迎使用 Fluent 风格应用", self))
class SettingsInterface(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setObjectName("settingsInterface")
layout = QVBoxLayout(self)
layout.addWidget(QLabel("应用设置界面", self))
if __name__ == "__main__":
app = QApplication(sys.argv)
# 创建主窗口
window = FluentWindow()
window.setWindowTitle("我的第一个 Fluent 应用")
window.resize(800, 600)
# 添加子界面
window.addSubInterface(HomeInterface(), FluentIcon.HOME, "首页")
window.addSubInterface(SettingsInterface(), FluentIcon.SETTING, "设置", NavigationItemPosition.BOTTOM)
window.show()
sys.exit(app.exec_())
运行上述代码,将看到一个具有现代美感的应用窗口,包含侧边导航栏和内容区域。导航项支持点击切换,界面具有平滑过渡动画。更复杂的示例可参考 examples/gallery/demo.py。
界面美化与交互增强
PyQt-Fluent-Widgets 内置多种主题样式,默认支持明暗两种模式。可通过以下代码切换主题:
from qfluentwidgets import setTheme, Theme
# 设置为深色主题
setTheme(Theme.DARK)
窗口支持云母效果(Windows 11 特有),可通过 setMicaEffectEnabled(True) 启用,使界面具有半透明磨砂效果。下图展示了不同显示模式的导航界面:
导航栏支持自动隐藏和展开,可通过鼠标拖拽边界调整宽度。这些交互特性极大提升了应用的用户体验。
快速开发技巧与资源
为加速开发,推荐使用以下资源:
- 示例代码库:examples/ 目录包含丰富的组件示例,涵盖按钮、对话框、布局等
- 图标资源:内置 Fluent 风格图标库,可通过 qfluentwidgets/common/icon.py 查看所有可用图标
- 官方文档:完整的 API 文档和使用指南位于 docs/ 目录
开发时,建议先参考示例代码,再根据需求修改定制。对于常见问题,可查阅项目 issue 列表 或提交新问题。
总结与展望
本文介绍了 PyQt-Fluent-Widgets 的快速上手方法,包括环境安装、核心窗口使用和界面美化技巧。通过简单的代码示例,你可以快速构建出符合 Fluent Design 规范的现代界面。PyQt-Fluent-Widgets 持续更新迭代,未来将支持更多组件和特性。
现在,你已经掌握了 PyQt-Fluent-Widgets 的基本使用方法,赶快动手实践,将你的 PyQt 应用升级为现代化界面吧!如果觉得本文对你有帮助,请点赞、收藏,并关注项目获取最新更新。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0446
源启盛夏_AtomGit暑期开发者成长计划「源启盛夏」暑期校园开发者成长计划旨在激活校园开源力量,通过积分激励、认证扶持、资源倾斜等形式,引导高校组织和开发者完成「入驻 — 建项目 — 做贡献 — 获认证 — 得资源」的完整闭环。无论你是想带领社团入驻平台的组织者,还是希望用代码贡献证明自己的开发者,都能在这里找到属于你的成长路径。Markdown00
jiuwenswarmJiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0760
Hy3Hy3 是由腾讯混元团队研发的快慢思考融合的混合专家模型,总参数量 295B,激活参数 21B,MTP 层参数 3.8B。4 月底发布 Hy3 Preview 后,我们在 50 多个业务中获得了广泛的反馈,修复了各种体验问题,进一步提升了后训练的质量和规模。今天,我们发布 Hy3。它展现出显著强于同尺寸并比肩旗舰(参数规模往往是 Hy3 的 2~5 倍)开源模型的智能水平,显著提升了在各类产品和生产力任务中的实用价值。Python00
AscendNPU-IRAscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优C++0310
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00

