我因为要准备 c\c++考试,所以要间接学到 qt ,所以发出此问
学习门槛:
electron 完胜 ( 要让 qml 完美工作,不会点 c++肯定不行)
生态:
electron 完胜( electron 自身生态+ 整个 js 生态, 现在的 qml 几乎没有生态可言)
性能:
qml 是 在运行的时候,把 js 、qml 从 二进制里提取出来, 放到临时目录 ,进行渲染工作 ,可能比 electron 性能强一点点(猜测,并没有实测)
结论:
qml 似乎 没啥地方比得过 electron 呀?
虽然 qt 公司在推广 qml ,那我为什么不去学 electron 呢?
本来界面、逻辑用 c++写,打包后,还可以保护界面和逻辑代码
但如果,一个软件,完全基于 qml 来写,界面、逻辑都被人家看光光了( qml 写的程序,打包后,二进制里,可以看到 qml 源文件,和 js 源码)
谢谢大家, 目前我在 electron 和 pyqt5/pyside6 之间纠结
开了个新贴:
[electron 和 pyqt5/pyside6 在性能、体积、代码安全性上,差别大吗?] https://v2ex.com/t/810467
1
wtfdsy 2021-10-25 15:53:20 +08:00
Qt Quick 只是整个 Qt 环境的一部分,Qml 拿来快速实现 UI 的而已,说到底 Qt 还是个 C++为主的生态
|
2
zk8802 2021-10-25 16:09:15 +08:00 via iPhone
真正测试一下性能就知道了。
|
3
pengtdyd 2021-10-25 16:09:25 +08:00
单纯写界面是这样的,如果是和硬件交互那就是另外一回事了
|
4
adeweb 2021-10-25 16:25:12 +08:00
经历过把 Electron 应用重构成 Qt+QML 应用,性能强很多啊。
同样的业务复杂度和逻辑,QML 应用能在赛扬处理器+2G 内存上欢快地跑;而 Electron 应用卡成狗。 业务场景:POS 机收银。 |
5
efaun 2021-10-25 17:04:55 +08:00
从我一个用户的体验来讲,Electron 安装包很大,且不能更改默认安装路径
|
6
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 |
7
find456789 OP @wzzzx
qml 这个编译 也是会泄漏代码的。现在新版是默认开启了 qml 编译选项的 |
8
find456789 OP |
9
find456789 OP @efaun
不能选安装目录吗? 我还没有开始学。回头学学看 |
10
ysc3839 2021-10-25 19:16:50 +08:00
@efaun @find456789 不能改安装路径这不是 Electron 的锅,是安装程序没提供选项。
安装包大小问题这个暂时无解。目前微软在搞 Edge WebView2 ,但是短时间内功能是比不上 Electron 的。 |
11
singerll 2021-10-25 19:42:24 +08:00 via Android
electron 的应用都说不出来的卡顿,就是再流畅,我也感觉有种莫名的卡顿
|
12
qua 2021-10-25 19:50:55 +08:00
不如 Wail ,前端 JavaScript 后端 Go
|
13
ihipop 2021-10-25 20:01:41 +08:00 via Android
你的山顶和 qml 的山顶不是同一个。
|
14
agagega 2021-10-25 20:04:04 +08:00
QML 应该出现得比 Electron 早不少,你这个逻辑不成立
|
15
chengxiao 2021-10-25 20:05:26 +08:00
qt 也不一定非要 C++啊,有很多语言可以用啊,pyqt 写起来其实也挺愉快的,
很多其他语言也有 bind 方法 golang/ruby |
16
find456789 OP |
17
Showfom 2021-10-25 21:06:44 +08:00
几十年= =
|
18
ysc3839 2021-10-25 21:08:34 +08:00 via Android
@find456789 直接说用途
|
19
find456789 OP @ysc3839
谢谢 我用来 开发不那么底层的软件, 一些工具软件, 比如 迅雷、百度网盘 这种 目前 在 electron 和 pyqt5/pyside6 之间纠结 开了个新贴: [electron 和 pyqt5/pyside6 在性能、体积、代码安全性上,差别大吗?] https://v2ex.com/t/810467 |
20
ashong 2021-10-25 21:16:58 +08:00
套壳 chromium + js 😄
|
21
crysislinux 2021-10-25 21:22:50 +08:00 via Android
qml 性能强的多。我 10 年前在 arm9 上都挺流畅,虽然屏幕分辨率不大
|
22
Lemeng 2021-10-25 21:23:45 +08:00
就只是看看算了
|
23
bg7lgb 2021-10-25 22:05:52 +08:00
pyside2, j1900 上跑得还可以。
|
24
dddd1919 2021-10-25 22:12:21 +08:00
用过 switchHosts 和 postman 的客户端,都是基于 electron ,通病:程序运行时间越长会越卡,开时间长了程序莫名崩溃,只能重启解决
|
25
ysc3839 2021-10-26 01:27:37 +08:00 via Android
@find456789 那还是建议 Electron ,或者别的基于 Web 的技术。Qt 以及 Python 在这方面没有太大优势,基于 Web 框架可以快速开发出好看的界面。
|
26
zqx 2021-10-26 09:01:51 +08:00 via Android
各有各的场景
你说 mfc 太落后了,现在的 360 天擎还在用,篡改劫持驱动程序之类的逻辑,c++有可能比 web 技术栈可靠一些 |
27
alexkkaa 2021-10-26 09:10:31 +08:00 via Android
Js 的生态哪是 qt 可以比的
|
29
panlatent 2023-03-07 22:22:25 +08:00
绝大多数技术不说用途其实不太好比较,应用场景不太一样。或者有的能比较,但出于某种原因,你不重新发明就得捏着鼻子用。
|