V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
find456789
V2EX  ›  问与答

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

  •  
  •   find456789 · 2021-10-25 14:25:01 +08:00 · 4719 次点击
    这是一个创建于 1129 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    学习门槛:

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

    生态:

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

    性能:

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

    结论:

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

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

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

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

    第 1 条附言  ·  2021-10-25 21:15:37 +08:00

    谢谢大家, 目前我在 electron 和 pyqt5/pyside6 之间纠结

    开了个新贴:

    [electron 和 pyqt5/pyside6 在性能、体积、代码安全性上,差别大吗?] https://v2ex.com/t/810467

    29 条回复    2023-03-07 22:22:25 +08:00
    wtfdsy
        1
    wtfdsy  
       2021-10-25 15:53:20 +08:00
    Qt Quick 只是整个 Qt 环境的一部分,Qml 拿来快速实现 UI 的而已,说到底 Qt 还是个 C++为主的生态
    zk8802
        2
    zk8802  
       2021-10-25 16:09:15 +08:00 via iPhone
    真正测试一下性能就知道了。
    pengtdyd
        3
    pengtdyd  
       2021-10-25 16:09:25 +08:00
    单纯写界面是这样的,如果是和硬件交互那就是另外一回事了
    adeweb
        4
    adeweb  
       2021-10-25 16:25:12 +08:00
    经历过把 Electron 应用重构成 Qt+QML 应用,性能强很多啊。
    同样的业务复杂度和逻辑,QML 应用能在赛扬处理器+2G 内存上欢快地跑;而 Electron 应用卡成狗。
    业务场景:POS 机收银。
    efaun
        5
    efaun  
       2021-10-25 17:04:55 +08:00
    从我一个用户的体验来讲,Electron 安装包很大,且不能更改默认安装路径
    wzzzx
        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
    find456789
        7
    find456789  
    OP
       2021-10-25 19:08:51 +08:00 via iPhone
    @wzzzx
    qml 这个编译 也是会泄漏代码的。现在新版是默认开启了 qml 编译选项的
    find456789
        8
    find456789  
    OP
       2021-10-25 19:10:07 +08:00 via iPhone
    @adeweb

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

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


    谢谢

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

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

    开了个新贴:

    [electron 和 pyqt5/pyside6 在性能、体积、代码安全性上,差别大吗?] https://v2ex.com/t/810467
    ashong
        20
    ashong  
       2021-10-25 21:16:58 +08:00
    套壳 chromium + js 😄
    crysislinux
        21
    crysislinux  
       2021-10-25 21:22:50 +08:00 via Android
    qml 性能强的多。我 10 年前在 arm9 上都挺流畅,虽然屏幕分辨率不大
    Lemeng
        22
    Lemeng  
       2021-10-25 21:23:45 +08:00
    就只是看看算了
    bg7lgb
        23
    bg7lgb  
       2021-10-25 22:05:52 +08:00
    pyside2, j1900 上跑得还可以。
    dddd1919
        24
    dddd1919  
       2021-10-25 22:12:21 +08:00
    用过 switchHosts 和 postman 的客户端,都是基于 electron ,通病:程序运行时间越长会越卡,开时间长了程序莫名崩溃,只能重启解决
    ysc3839
        25
    ysc3839  
       2021-10-26 01:27:37 +08:00 via Android
    @find456789 那还是建议 Electron ,或者别的基于 Web 的技术。Qt 以及 Python 在这方面没有太大优势,基于 Web 框架可以快速开发出好看的界面。
    zqx
        26
    zqx  
       2021-10-26 09:01:51 +08:00 via Android
    各有各的场景
    你说 mfc 太落后了,现在的 360 天擎还在用,篡改劫持驱动程序之类的逻辑,c++有可能比 web 技术栈可靠一些
    alexkkaa
        27
    alexkkaa  
       2021-10-26 09:10:31 +08:00 via Android
    Js 的生态哪是 qt 可以比的
    hxnets
        28
    hxnets  
       2021-10-27 09:55:12 +08:00
    @adeweb 你这让我想起来了当年在 客凯易的时候 v4 版本的 pos 系统,当时演示那个卡的我怀疑人生
    panlatent
        29
    panlatent  
       2023-03-07 22:22:25 +08:00
    绝大多数技术不说用途其实不太好比较,应用场景不太一样。或者有的能比较,但出于某种原因,你不重新发明就得捏着鼻子用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3908 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:24 · PVG 18:24 · LAX 02:24 · JFK 05:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.