Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1209|回复: 0
打印 上一主题 下一主题

DuiLib和QT哪个作为界面比较好?

[复制链接]

1272

主题

2067

帖子

7962

积分

认证用户组

Rank: 5Rank: 5

积分
7962
跳转到指定楼层
楼主
发表于 2023-3-12 16:06:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
作者:邓佳佳
链接:https://www.zhihu.com/question/23857833/answer/987433882
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最近这几年,Duilib 和 Qt 我均有使用,严谨的来说,Duilib 和 Qt 不是一个标准上的事物。
Duilib  是一个 Windows 下的纯 UI 框架(当然近些年也有人尝试跨平台,可以搜索一下 Github)
而 Qt 更像一个平台,它不仅仅有 UI 能力部分,还包括跨平台的基础组件(如类似标准库的各种容器、线程管理、内存管理等),只要你遵守使用规则,让你一套代码可以在多个平台下跑,与 Duilib 一个级别的是 Qt Widgets 和 Qt Quick,这是两种不同的 UI 解决方案(先不展开说),而 Qt 不仅仅这些。
学习哪个?
Duilib 在 Windows 下属于轻量级 UI 框架,现在的 Github 上维护的代码可以跑在从 Windows XP 到 Windows 10 的所有系统,它的优点是体积较小、速度快、代码结构简单、仅需 C++ 和 XML 技能即可驾驭。而缺点也有,比如现在是开源放养状态没有团队专门维护、不能跨平台、一些细节功能实现不理想(DPI适配、多语言管理、GDI/GDI+渲染效果不理想等)你可以通过 Duilib 开源地址中查看有哪些项目使用了 Duilib。如果你不需要跨平台且追求性能,建议学习使用 Duilib。这里推荐你看一下由网易云信团队基于原 Duilib 魔改的 NIM Duilib
Qt Wdigets 和 Qt Quick 的优点显而易见,跨平台、有专业团队维护、细节功能实现完善、高性能渲染引擎。缺点是动态链接需要依赖很多动态库导致发布包体积稍微有点大、个别场景的性能体验不如 Duilib、需要掌握不同的技能如 QSS/QML/JavaScript 等。Qt Widgets,这是 Qt 传统的 UI 解决方案,更贴近桌面系统的 UI 框架,如果你想做出理想效果,需要掌握 QSS(类似 CSS)。而 Qt Quick 则为了适配现有的移动端场景(当然也可以开发桌面应用),你需要掌握 QML 语法、JavaScript 语法。如果你希望你开发的应用跨平台,并且不在乎体积可以尝试使用 Qt Widgets 或 Qt Quick 来做 UI 的解决方案。
没有预期?
如果你不知道要不要跨平台、暂时不对性能有追求,只是想学习新技能?那么先学习哪个都不太推荐,现在桌面端 UI 解决方案逐渐被一些前端解决方案替代,如 Electron,学习它可能对你未来职业发展和找工作更有帮助,在大前端的时代你未来转向其他方向也有所帮助。除非你想进入一些对原生应用打死不肯放手的公司,那么要看这家公司目前选择的框架更贴近哪一种,是 Duilib 发展分支还是 Qt 旗下的解决方案就要你自己做出决定了,甚至现在有一些公司还在用 MFC、原生 Win32 等等,这些都要看公司需求。



windows下,肯定是duilib。比如现在的微信qq的windows,就是duilib或者类duilib。
linux,肯定是qt。
为什么windows下大部分选duilib而不是qt?
体积小,duilib核心库只有2m不足,静态编译更小。
开发漂亮的界面很方面,至少比mfc方便多了
qt体积太大,重型应用,动不动就要附带一堆大dll,不要说核心dll体积也不大,你去看看qt的程序,那个只附带了核心dll了?
而且,qt要钱,性能一般。

但就未来来说,qt确实是不错的选择,跨平台更方便,但是,要论极致的windows程序,ui最好还是duilib。或许,qq微信,也许真的会用qt。

你如果想学界面,但就都学,其实qt和duilib真的都挺简单的,只要你自己稍微琢磨就很熟练了。


链接:https://www.zhihu.com/question/23857833/answer/1336142635
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-25 09:39 , Processed in 0.063670 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表