Qt Quick(Qt Qml) 和 electron 似乎没啥区别? 所以 qt 努力了几十年, js 早就到山顶等着了?

2021-10-25 14:25:01 +08:00
 find456789

我因为要准备 c\c++考试,所以要间接学到 qt ,所以发出此问

学习门槛:

electron 完胜 ( 要让 qml 完美工作,不会点 c++肯定不行)

生态:

electron 完胜( electron 自身生态+ 整个 js 生态, 现在的 qml 几乎没有生态可言)

性能:

qml  是  在运行的时候,把 js 、qml 从 二进制里提取出来, 放到临时目录 ,进行渲染工作 ,可能比 electron 性能强一点点(猜测,并没有实测)

结论:

qml 似乎 没啥地方比得过 electron 呀?

虽然 qt 公司在推广 qml ,那我为什么不去学 electron 呢?

本来界面、逻辑用 c++写,打包后,还可以保护界面和逻辑代码

但如果,一个软件,完全基于 qml 来写,界面、逻辑都被人家看光光了( qml 写的程序,打包后,二进制里,可以看到 qml 源文件,和 js 源码)

4714 次点击
所在节点    问与答
29 条回复
wtfdsy
2021-10-25 15:53:20 +08:00
Qt Quick 只是整个 Qt 环境的一部分,Qml 拿来快速实现 UI 的而已,说到底 Qt 还是个 C++为主的生态
zk8802
2021-10-25 16:09:15 +08:00
真正测试一下性能就知道了。
pengtdyd
2021-10-25 16:09:25 +08:00
单纯写界面是这样的,如果是和硬件交互那就是另外一回事了
adeweb
2021-10-25 16:25:12 +08:00
经历过把 Electron 应用重构成 Qt+QML 应用,性能强很多啊。
同样的业务复杂度和逻辑,QML 应用能在赛扬处理器+2G 内存上欢快地跑;而 Electron 应用卡成狗。
业务场景:POS 机收银。
efaun
2021-10-25 17:04:55 +08:00
从我一个用户的体验来讲,Electron 安装包很大,且不能更改默认安装路径
wzzzx
2021-10-25 17:19:33 +08:00
两个都搞过好一阵子。
学习门槛:
QML 完全可以独立工作。但是一旦涉及与 C++的交互,QML 的开发体验直接完爆 electron. 开发体验上,QML 写起来比 electron 爽的多
生态:
生态缺失是 QML 的弱势,但是很多 C++库 electron 不方便用,QML 可以比较方便的导入
性能:
QML 也可以编译的, https://doc.qt.io/archives/QtQuickCompiler/index.html
find456789
2021-10-25 19:08:51 +08:00
@wzzzx
qml 这个编译 也是会泄漏代码的。现在新版是默认开启了 qml 编译选项的
find456789
2021-10-25 19:10:07 +08:00
@adeweb

我目前基本决定 选 electron 了、其次是 maui 、flutter 。。c++生态是硬伤啊
find456789
2021-10-25 19:11:08 +08:00
@efaun
不能选安装目录吗? 我还没有开始学。回头学学看
ysc3839
2021-10-25 19:16:50 +08:00
@efaun @find456789 不能改安装路径这不是 Electron 的锅,是安装程序没提供选项。
安装包大小问题这个暂时无解。目前微软在搞 Edge WebView2 ,但是短时间内功能是比不上 Electron 的。
singerll
2021-10-25 19:42:24 +08:00
electron 的应用都说不出来的卡顿,就是再流畅,我也感觉有种莫名的卡顿
qua
2021-10-25 19:50:55 +08:00
不如 Wail ,前端 JavaScript 后端 Go
ihipop
2021-10-25 20:01:41 +08:00
你的山顶和 qml 的山顶不是同一个。
agagega
2021-10-25 20:04:04 +08:00
QML 应该出现得比 Electron 早不少,你这个逻辑不成立
chengxiao
2021-10-25 20:05:26 +08:00
qt 也不一定非要 C++啊,有很多语言可以用啊,pyqt 写起来其实也挺愉快的,
很多其他语言也有 bind 方法 golang/ruby
find456789
2021-10-25 20:39:54 +08:00
@chengxiao

我目前在 electron 和 pyqt/pyside6 之间纠结, 这 2 个不知道 性能、体积上,究竟差别多大
Showfom
2021-10-25 21:06:44 +08:00
几十年= =
ysc3839
2021-10-25 21:08:34 +08:00
@find456789 直接说用途
find456789
2021-10-25 21:16:57 +08:00
@ysc3839


谢谢

我用来 开发不那么底层的软件, 一些工具软件, 比如 迅雷、百度网盘 这种

目前 在 electron 和 pyqt5/pyside6 之间纠结

开了个新贴:

[electron 和 pyqt5/pyside6 在性能、体积、代码安全性上,差别大吗?] https://v2ex.com/t/810467
ashong
2021-10-25 21:16:58 +08:00
套壳 chromium + js 😄

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/810348

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX