许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  我把PyQt6做成了Windows11:Fluent Widgets 真香指南

我把PyQt6做成了Windows11:Fluent Widgets 真香指南

阅读数 1
点赞 0
article_banner

Fluent UI 的加入,就像给 PyQt6 穿上 Windows 11 的自带滤镜:干净、顺滑、年轻。看一眼,你就会觉得:嗯,这界面终于有现代软件的味道了。

⭐ 01|运行第一个示例:PyQt6 也能很“微软”

想要看效果,最好的方式永远是——跑一个 demo

PyQt6-Fluent-Widgets 官方自带了大量示例项目,打开即用。运行后,你将看到一个拥有按钮、图标、输入框、导航栏的完整 Fluent UI 风格界面,非常接近 Windows 11 的应用体验。

要查看 PyQt6-Fluent-Widgets 的效果,我们可以运行库提供的示例项目。如下图所示:

接下来我们在浏览器地址输入https://github.com/zhiyiYo/PyQt-Fluent-Widgets/tree/PyQt6,点击右侧的code按钮的下拉按钮,页面展示如下:

若您熟悉 Git,可以直接克隆项目;如果不熟悉,可以从官网下载 ZIP 文件,并解压到本地。解压后,将 Examples 文件夹复制到我们的项目的根目录下。如下图所示:

接下来我们展开example文件夹,打开 gallery 文件夹中的 demo.py。如下图所示:

右键点击 Run 运行,或通过终端进入 Examples/gallery 文件夹并执行命令

或在终端里:

python demo.py

以启动示例界面,稍等片刻,它会启动。第一次加载可能略慢,但成功后你将看到一个让人眼前一亮的 Fluent UI 示例主页。按钮、输入框、对话框、提示框、布局、导航……全都整整齐齐地摆在你面前。这是 Fluent UI 给你的第一感受:可视化程度高,组件丰富,样式统一。

⭐ 02|组件一览:你能想到的,它都有

示例界面里展示了几乎所有常用组件,你完全可以把它当成一个“组件词典”。这里挑几个关键模块感受一下:

✔ 图标 Icon

各种样式、各种风格,适合导航栏、按钮、提示框等。提供多种图标库供选择。


✔ 基本输入组件

基本输入:包含多种按钮(基础、带标签、带图标等)、输入框(含密码输入)。


✔ 布局 Layout

布局:支持动态布局,自定义窗口、浮动提示等效果。


✔ 导航

导航:种类繁多


✔ 状态和信息

状态和信息:支持多样的分页、徽章样式。


✔ 日期和时间

日期和时间:拿来即用,方便省事


✔ 对话框和弹出窗口

对话框和弹出窗口:你几乎不需要写样式,直接拿来就是 Windows11 风格。


✔ 视图与表格

视图和表格:列表、树形结构、表格控件……非常适合管理系统、后台工具、数据应用。


在开发自定义项目时,我们可以直接利用这些组件和布局,而无需额外设计 UI 样式,能够将精力更集中于业务逻辑的实现。

在了解了这些组件效果之后,我们可以根据项目的实际需求,选择相应的组件来实现所需的效果。例如,当你需要使用图标时,可以查看图标的具体用法;当需要输入框时,可以参考“基本输入”中关于输入框的使用示例。

接下来,让我们来看看代码的具体实现逻辑。在项目目录中,gallery文件夹代表全局效果配置,我们之前看到的效果就是由该文件夹中的内容提供的。如果我们想单独查看某个效果,比如只关注输入框,则可以查看basic_input模块;如下图所示:


如果只想看按钮的效果,可以点击button文件下的demo.py进行运行,从而查看按钮的各种样式效果。这些效果包括普通样式、无背景色样式、带图标样式、下拉样式等。如下图所示:


一句话:你写业务逻辑,它替你把 UI 做好看。

⭐ 03|如何找到“对应组件”的代码?

你会发现:PyQt6 原生的组件命名,它也保留了,但换成更 Fluent 的风格。

例如,在之前的PyQt6项目中,我们使用button组件进行按钮的调用,而在qfluentwidgets组件中,相应的标识会有所不同。例如,在PyQt6中称为QPushButton,而在qfluentwidgets中则叫作PushButton;带颜色的按钮则称为PrimaryPushButton。如果不确定如何选择具体的按钮样式,可以通过代码来查找相应的标识。组件库提供了详细的代码示例,我们可以方便地查找对应的组件名称。例如,如果我们想使用“Standard push button”,只需搜索“Standard push button”即可找到对应的代码行,直接复制使用即可。如下图所示:


这种设计与PyQt6的命名规则非常相似,作者在开发时尽量保持与PyQt6的兼容性,以便用户能够快速上手。通过这种方式,开发者可以在最小的学习成本下掌握该组件库的使用方法。

同样地,如果需要使用下拉按钮,可以查看其名称为 SplitPushButton。如下图所示:


通过搜索 SplitPushButton,可以看到有多种效果选项,例如 1 是基本效果,2 是带图标的效果。代码截图如下:


菜单的子选项是通过 setFlyOut 和 menu 添加的。menu 中通过 addAction 添加了选项,如 Basketball、Sing 和 Music,这些选项展示了按钮下拉菜单中的具体内容。通过查看源码与页面样式,我们可以理解这些样式效果在代码中的实现方式。在实际使用时,这些组件的基本操作与 PyQt6 非常相似,但在一些标识上有所区别。

⭐ 04|组件与源码的关系:学会查源码,你就会写项目

以 PushButton 为例,按住ctrl或者cmd键进行单击PushButton,如下图所示:


我们查看其源码,可以发现,PushButton 继承自 PyQt6 的 QPushButton 类,在此基础上进行了扩展,使得按钮组件效果更加丰富。尽管 PushButton 添加了许多新功能,但依然与 PyQt6 保持一致性,因此操作方法十分接近。


⭐ 05|导航栏、分级菜单、窗口示例:拿来即用

接下来,我们再来看一些常见的组件,如导航栏。导航栏组件 navigation 提供了不同的展示效果,例如 navigation1 ,如下图所示:


可以在点击时展开和收缩,提供了层级显示的功能,可以支持二级、三级导航等。如下图所示:


根据需求,我们可以将此示例 demo 代码调整为所需的效果,将图标替换为所需的内容,将文字内容进行修改,点击后可显示对应页面。如果有自己的页面内容,只需设置显示相应页面即可。导航栏组件在布局中的用途广泛,我们将会在后续章节进行详细讲解。

此外,还有一些 window 窗口示例,其中包含预设的功能样式。例如,提供了一个时钟示例,展示了时分秒的动态效果,这样的时钟组件可以直接作为模板使用,在其中加入自定义的业务逻辑即可。如下图所示:


⭐ 06|如何高效使用这些示例?

一个非常重要的建议:先运行、后使用,不用死记硬背代码。在实际开发过程中,建议充分利用这些示例代码。许多示例都可以在简单调整后直接使用,大大提升了开发效率,使得我们可以将更多精力专注于业务逻辑的实现,而非样式布局本身。

你只需要:

  1. 找到对应组件
  2. 运行对应 demo
  3. 把 demo 里的组件复制到项目
  4. 根据需要删改

这比你从零写 UI 快十倍。等熟悉后,你自然就能“看名字猜组件”,效率会飞跃。

⭐ 07|写在最后:让 PyQt6 开发更快乐

很多人坚持不下去 PyQt6,很大原因是:

  • 原生界面太朴素
  • 想做现代 UI 需要写大量样式表
  • 样式兼容性差、成本高

Fluent Widgets 解决了这一切。

它让 PyQt6:

  • 变现代
  • 变好看
  • 变一致
  • 变容易开发

如果你正在做学生管理系统、办公工具、后台系统、可视化软件……

一定要试试 Fluent Widgets。
你会发现:PyQt6 原来也能这么“高级”。

愿你写的每一行代码,都能在屏幕上闪闪发光。愿你的应用,也变成你心中“它本来就该是这样的样子”。✨



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空