[01] Qt的UI框架选择和对比

Qt作为跨平台应用开发的主流框架,其生态中衍生出多种开源UI扩展库,为了好看嘛,也为了效率。个人在网上找到了一些开源的UI框架并做了一些对比,最终选择了ElaWidgetTool

一、QFluentWidgets

官方地址: https://qfluentwidgets.com/zh/

QFluentWidgets是一个基于 Qt 的 Fluent Designer 组件库,内置超过 150 个开箱即用的 Fluent Designer 组件。该库支持亮暗主题无缝切换和自定义主题色,非常适合需要现代化 UI 的应用程序。通过搭配所见即所得的 Fluent Designer 软件使用,开发者只需拖拽即可快速搭建界面,无需编写一行 QSS 代码。这使得界面设计和开发过程更加便捷和高效。

很好看,大概是效果最好的组件库,但是同时也是最贵的,商用得花4k,个人花200r左右;

二、TaoQuick

官方地址: https://gitee.com/jaredtao/TaoQuick

TaoQuick 是一个 QtQuick/Qml 组件库,集成了常用的 QtQuick 组件,并进行了适当的属性封装和功能扩展。这个库的目标是方便开发者在 Qml 程序中使用。它不仅包含了各种基础组件如按钮、输入框、列表视图等,还提供了丰富的示例程序和详细的文档,帮助开发者更好地理解和使用这些组件。

主要是Quick/Qml的比较适合,话说都Qml了为啥不直接eletrcton.国内一个大佬做的

三、QCustomUI

QCustomUI 是一个主要提供无边框窗口和自定义控件的 UI 库,适用于那些需要定制化界面的 Qt 项目。该库已在 Qt 5.15.2 和 Qt 6 版本上测试通过,并提供了设计器插件,可以直接在 Qt Designer 和 Qt Creator 中使用。这种无缝集成大大提高了开发的便利性。

Custom几百star但是比较新有个人开发者维护

四、qt-material-widgets

官方地址 : https://github.com/laserpants/qt-material-widgets

基于 QtWidget 的 Material 风格组件库,实现了约 20 个 Material 风格的组件。这些组件包括进度条、滚动条、对话框、抽屉式导航栏、浮动操作按钮等,都是按照 Material Design 的视觉规范设计的。使用这些组件可以很容易地在 Qt 应用中实现 Google 的 Material 设计风格。

Material 有几KStar但是20年已停止更新,下载下来编过了用了一下还行就是组件有点少

五、ElaWidgetTool

官方地址: https://github.com/Liniyous/ElaWidgetTools

ElaWidgetTool 是一个基于 Qt 的 Fluent 风格 UI 组件库,由 B 站用户 _Ela 开发,支持在 VSCode 中编译并可导入个人项目使用。该组件库采用 QWidget 实现,具备主题切换、导航系统、路由跳转等功能,并提供丰富的炫酷视觉效果,开发者可通过 GitHub 获取源码并集成到本地项目中。

接近2k的star,非常丝滑的UI效果比肩QFluentWidgets,且活跃维护中。如果唯一要说缺点那就是得纯代码构建了,不支持UI拖拽

结尾

经过对比测试,ElaWidgetTool 在视觉效果和开发效率上表现突出,无论是预置的现代化组件还是灵活的定制能力,都能为 Qt 应用注入更多活力。

你是否也在寻找类似的 UI 解决方案?欢迎在评论区分享你使用过的开源框架,或讨论对 ElaWidgetTool 的实际体验!

相关推荐
生物小卡拉3 小时前
R脚本——Deseq2差异表达分析--v1.0
windows·经验分享·笔记·学习·信息可视化·数据分析
小许学java3 小时前
Spring AI快速入门以及项目的创建
java·开发语言·人工智能·后端·spring·ai编程·spring ai
AGG_Chan3 小时前
flutter专栏--深入了解widget原理
开发语言·javascript·flutter
greentea_20133 小时前
Codeforces Round 173 B. Digits(2043)
c++·算法
Darenm1114 小时前
JavaScript事件流:冒泡与捕获的深度解析
开发语言·前端·javascript
whltaoin4 小时前
Java 后端与 AI 融合:技术路径、实战案例与未来趋势
java·开发语言·人工智能·编程思想·ai生态
wjs20244 小时前
jEasyUI 自定义窗口工具栏
开发语言
二十雨辰4 小时前
vite与ts的结合
开发语言·前端·vue.js
亦良Cool4 小时前
如何部署一个Java项目
java·开发语言