Qt Quick(Qt Qml) 和 electron 似乎没啥区别? 所以 qt 努力了几十年, js 早就到山顶等着了? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
find456789
V2EX    问与答

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

  •  
  •   find456789 2021 年 10 月 25 日 5582 次点击
    这是一个创建于 1555 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我因为要准备 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 日

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

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

    我目前在 electron 和 pyqt/pyside6 之间纠结, 这 2 个不知道 性能、体积上,究竟差别多大
    Showfom
        17
    Showfom  
    PRO
       2021 年 10 月 25 日
    几十年= =
    ysc3839
        18
    ysc3839  
       2021 年 10 月 25 日 via Android
    @find456789 直接说用途
    find456789
        19
    find456789  
    OP
       2021 年 10 月 25 日
    @ysc3839


    谢谢

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

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

    开了个新贴:

    [electron 和 pyqt5/pyside6 在性能、体积、代码安全性上,差别大吗?] https://v2ex.com/t/810467
    ashong
        20
    ashong  
       2021 年 10 月 25 日
    套壳 chromium + js
        21
    crysislinux  
       2021 年 10 月 25 日 via Android
    qml 性能强的多。我 10 年前在 arm9 上都挺流畅,虽然屏幕分辨率不大
    Lemeng
        22
    Lemeng  
       2021 年 10 月 25 日
    就只是看看算了
    bg7lgb
        23
    bg7lgb  
       2021 年 10 月 25 日
    pyside2, j1900 上跑得还可以。
    dddd1919
        24
    dddd1919  
       2021 年 10 月 25 日
    用过 switchHosts 和 postman 的客户端,都是基于 electron ,通病:程序运行时间越长会越卡,开时间长了程序莫名崩溃,只能重启解决
    ysc3839
        25
    ysc3839  
       2021 年 10 月 26 日 via Android
    @find456789 那还是建议 Electron ,或者别的基于 Web 的技术。Qt 以及 Python 在这方面没有太大优势,基于 Web 框架可以快速开发出好看的界面。
    zqx
        26
    zqx  
       2021 年 10 月 26 日 via Android
    各有各的场景
    你说 mfc 太落后了,现在的 360 天擎还在用,篡改劫持驱动程序之类的逻辑,c++有可能比 web 技术栈可靠一些
    alexkkaa
        27
    alexkkaa  
       2021 年 10 月 26 日 via Android
    Js 的生态哪是 qt 可以比的
    hxnets
        28
    hxnets  
       2021 年 10 月 27 日
    @adeweb 你这让我想起来了当年在 客凯易的时候 v4 版本的 pos 系统,当时演示那个卡的我怀疑人生
    panlatent
        29
    panlatent  
       2023 年 3 月 7 日
    绝大多数技术不说用途其实不太好比较,应用场景不太一样。或者有的能比较,但出于某种原因,你不重新发明就得捏着鼻子用。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3006 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 14:09 PVG 22:09 LAX 06:09 JFK 09:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86