前言
之前对比过一些客户端开发的技术对比
https://www.psvmc.cn/article/2019-10-18-windows-program-develop.html
当时主要的平台是Windows,所以最终选择的是微软的WPF。
现在想考虑支持Linux和MacOS,并且支持多窗口的技术。
目前跨平台桌面开发技术有以下几种
- Qt 开发效率一般,但是性能不错。
- Electron 界面好看开发快,就是性能不咋行。
- Flutter 不建议,不能开发多窗口的桌面应用。
正好最近微信的Linux版本也上线了,据反映,体验还是不错的,也给我们一个参考。
微信使用的是Qt,QQ使用的是Electron,这也是比较成熟的两个跨平台的开发技术,但是看评价微信的体验比QQ好很多。
微信的主界面是 Qt,但 WEB渲染的部分是一个完全独立的程序,是 GTK 的。
从操作体验上
微信大概率使用的是Qt Widgets。
Qt Widgets还是Qt Quick
Qt Quick Application(QML):
适合现代触屏UI、动态效果,快速开发,跨平台一致性好。
适用于移动优先、视觉要求高的项目。
Qt Widgets Application(C++):
擅长经典桌面元素,提供丰富控件,深度集成底层功能,适合构建复杂桌面应用、高性能计算或紧密配合C++代码。
选择依据:平台目标、开发效率、团队技能、未来规划。
最直观的判断标准
- Qt Widgets 最大的优势就是内存占用更低。
- 如果你的软件最终是手指操作的多,就用qml,如果是鼠标操作的多,就选择widget。
- PC端更推荐Qt Widgets,手机端更推荐Qt Quick。
- Qt Widgets是模板和样式分离的,Qt Quick是不分离的。
- Qt Quick窗口在拖拽的时候会出现短暂的白边。
结论
最终个人建议做PC开发还是使用Qt Widgets更好。