请问目前有替换 Qt 的技术框架吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Trinity888
V2EX    程序员

请问目前有替换 Qt 的技术框架吗?

  •  1
     
  •   Trinity888 2024-03-20 08:52:07 +08:00 8181 次点击
    这是一个创建于 595 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问目前有替换 Qt 的技术框架吗?

    应用场景:主要是一些应用软件,桌面化软件; 目前使用过:Electron 框架打包桌面化软件(里面是 Web 界面)

    除了 C#或.Net 类的框架外,还有其他的吗? Electron 、Qt 、PyQt 、WPF 和 WinForms ?

    如从性能方面考虑,用哪些桌面化框架开发,比较好; 如从开发难度方面; 如从跨平台方面

    要允许可商用,不会涉及版权问题

    51 条回复    2024-03-20 22:10:54 +08:00
    wu67
        1
    wu67  
       2024-03-20 08:55:22 +08:00
    个人觉得, Electron 在性能方面调教得最好的应该是 vscode 了, 相当接近平台语言开发应用的体验.
    但是嘛, 你看市面上有几个 Electron 应用能调教出 vscode 这种水平....
    lsk569937453
        2
    lsk569937453  
       2024-03-20 08:55:38 +08:00   1
    golang:wails
    rust:tauri
    js: Electron
    剩下的就是 windows 系的了,都是开源的(MIT or Apache 2 协议),允许商用。
    Eiden
        3
    Eiden  
       2024-03-20 08:57:42 +08:00   1
    avalonia
    villivateur
        4
    villivateur  
       2024-03-20 08:58:01 +08:00
    嵌入式场景可以用 lvgl
    Vaspike
        5
    Vaspike  
       2024-03-20 09:04:08 +08:00   2
    kotlin compose(跨平台+可商用),用这个框架做过几个商用产品,性能明显高于普通的 Electron
    ma46
        6
    ma46  
       2024-03-20 09:06:10 +08:00   2
    跨平台可以用 flutter
    Honye
        7
    Honye  
       2024-03-20 09:11:14 +08:00
    @wu67 我是 TS 开发重度使用 VSCode ,我觉得 VSCode 性能太差,越来越重
    monkeyWie
        8
    monkeyWie  
       2024-03-20 09:12:44 +08:00
    flutter +1
    suuuch
        9
    suuuch  
       2024-03-20 09:13:08 +08:00   1
    最近看到一个比较神奇的,用 godot 游戏引擎做桌面应用。。。
    iorilu
        10
    iorilu  
       2024-03-20 09:16:20 +08:00
    没有匹配的, 毕竟 qt 是个极为庞大的项目, 也积累了这么多年

    哪些基于 web 技术的, 无论性能, 功能肯定都不可能完全替代

    个人觉得, 如果不是非要用 js 之类的, 确实可以考虑 flutter

    我觉得 flutter 很有前景, 最近也在看看
    nekomiao
        11
    nekomiao  
       2024-03-20 09:16:39 +08:00
    @Vaspike 没有 android 基础也可以用吗,之前看了下文档,文档都看不懂
    wu67
        12
    wu67  
       2024-03-20 09:18:35 +08:00
    @Honye 我觉得还行吧, 这玩意流畅度貌似跟内存大小有关系, 我在 32G 的 mini 上跑 vsc 比在 16G 的 mbp 上反应要流畅一点, 还是 intel 芯片的 mini...
    但是越来越重是真的, 花里胡哨的小功能时不时就蹦一个出来...
    momo1999
        13
    momo1999  
       2024-03-20 09:18:48 +08:00
    我们把 qt 换成了 flutter ,但是不算平替。
    Vaspike     14
    Vaspike  
       2024-03-20 09:19:20 +08:00   1
    @nekomiao #11 可以用的 我给的建议是不要从文档学起,直接 IDE 里新建一个 compose 项目,试一试他的组件
    Vaspike
        15
    Vaspike  
       2024-03-20 09:20:59 +08:00
    @Vaspike #5 添加一点:根据我之前的使用体验,kotlin compose 还有一个巨大的优势,那就是可以使用 kotlin 协程
    debuggerx
        16
    debuggerx  
       2024-03-20 09:22:24 +08:00
    用 flutter 的项目越来越多了
    Jirajine
        17
    Jirajine  
       2024-03-20 09:26:13 +08:00
    iced:popos 用 rust 重写了一套 DE 所使用的框架。
    slint:原 Qt 团队成员搞得类 qml/qtwidget 框架,授权方式和 qt 类似。
    gtk4:比起 qt 强绑定 cpp, gtk 各种语言的 binding 都可以用。
    楼上那些可以称作 electron 的替代品,但不是 qt 的替代品。
    Lambert2022
        18
    Lambert2022  
       2024-03-20 09:26:33 +08:00
    可以看看 Arc 浏览器团队的成果,它们的 Windows 客户端也是用的 Swift
    iorilu
        19
    iorilu  
       2024-03-20 09:27:10 +08:00
    @shuax qt 功能太庞大了, 肯定不可能完全替代的, 不可否认, qt 确实在某些方面有一定的优势
    iorilu
        20
    iorilu  
       2024-03-20 09:28:39 +08:00
    @Jirajine slint 看到过介绍, 原来就是 qt 的人搞得阿, 授权类似? 看来也很麻烦, 不折腾了, 还是搞 flutter 算了
    momo1999
        21
    momo1999  
       2024-03-20 09:29:18 +08:00
    @iorilu 我们就是做点小工具,反正以前的核心功能 C++编译成 flutter 插件,flutter 本身提供一层皮就行。
    Biye9012
        22
    Biye9012  
       2024-03-20 09:29:31 +08:00   1
    看你的需求吧, 我用过 PyQt PySide Electron Flutter;

    Electron 的 UI 效果更漂亮, js/ts 也有比较多的三方库可以用, 但是启动时真的慢, 一个小工具要几十秒才能启动;

    PyQt PySide 基于 Python 强大的社区能力, 写软件的时候有各种三方库可以用, UI 方面比较简陋, 如果想调的比较好看需要时间;

    Flutter 目前在桌面端还比较弱势, 极客可以尝试, 普通开发者还是不建议当小白鼠; 我用 Flutter 做过一个 Excel 数据分析的工具, 结果三方库在读取 Excel 时读取到的是单元格对应的公式, 读不出来计算后的结果;

    目前从我的使用来看, 比较偏向 PyQt PySide
    Xbathy
        23
    Xbathy  
       2024-03-20 09:30:16 +08:00
    flutter 不是要凉了么?
    hiplon
        24
    hiplon  
       2024-03-20 09:31:11 +08:00
    fpc:lazarus
    iorilu
        25
    iorilu  
       2024-03-20 09:34:26 +08:00
    @Biye9012 qt 版权问题绕不开的, 除非自己开发开源玩玩, 想卖的软件, 最好避开
    lstz
        26
    lstz  
       2024-03-20 09:41:56 +08:00 via Android
    我也计划用 qt 写 laftools 的桌面版,但是它的中文字体看起来好不舒服.... 查了一下好像无解,这字体看起来很累
    antonius
        27
    antonius  
       2024-03-20 10:03:20 +08:00   5
    用 ImGUI 很多年了,写工具很顺手,扩展很多,性能也不错。

    以下是我常用的几个库,能满足绝大部分需求。

    https://github.com/ocornut/imgui
    https://github.com/floooh/sokol/
    https://github.com/nothings/stb
    https://github.com/mattiasgustavsson/libs
    BingoXuan
        28
    BingoXuan  
       2024-03-20 10:34:03 +08:00
    @antonius
    确实,imgui 写工具还是很顺手的。最近一个外包后悔没用 imgui 做,不然当天就做完了。还拖了几个星期。
    Biye9012
        29
    Biye9012  
       2024-03-20 10:36:38 +08:00
    @iorilu #25 PySide 还行, 使用的 LGPL 许可
    datadump
        30
    datadump  
       2024-03-20 10:44:44 +08:00
    首选 Electron ,其次 tauri , 再次 flutter
    saturn7
        31
    saturn7  
       2024-03-20 10:58:33 +08:00
    wxWidgets
    iold
        32
    iold  
       2024-03-20 11:00:08 +08:00
    avalonia +1 ,刚把公司做加密狗的工具升级了。
    lwlizhe
        33
    lwlizhe  
       2024-03-20 11:18:27 +08:00
    话说各位的多窗口问题没考虑么,我们这用宁可用 QT 也不用 flutter 的原因就在此……
    如果真考虑性能的话,QT 好像还真没啥平替方案,性能方面 QT 确实是吊打,调教的确实好
    Severn
        34
    Severn  
       2024-03-20 11:19:33 +08:00
    unity 游戏开发行业,我直接 unity 开发应用程序。哈哈
    laters
        35
    laters  
       2024-03-20 11:22:52 +08:00
    flutter
    butubird439
        36
    butubird439  
       2024-03-20 11:32:27 +08:00
    Eclipse RCP ?
    Jirajine
        37
    Jirajine  
       2024-03-20 11:42:18 +08:00
    @iorilu #20 没办法,再造一个 Qt 肯定得要钱的,不过目前只有嵌入式平台的专有软件需要购买授权(不过它们目前也只有嵌入式平台宣称达到 production ready )
    sloknyyz
        38
    sloknyyz  
       2024-03-20 12:00:54 +08:00   1
    每次说 electron 都有人拿 vscode 出来说什么只有大厂才能优化,属实根本不知道自己要什么。你要是用 electron 做个编辑器,那确实对标 vscode
    但大部分开发者拿 electron 真的会去做编辑器吗? 不做编辑器的情况下,真的有那么多地方需要你优化吗? 稍微把代码写好点用户用起来体验就不错了。
    说白了就是个套壳浏览器,那么多网站在浏览器上都没见体验糟糕,说明你只要把前端的工程做好,使用 electron 的用户体验也不会差。
    weeei
        39
    weeei  
       2024-03-20 12:16:29 +08:00
    @Lambert2022 Swift for Windows 只有一个官方开发者在支持,ARC 好像没有提供 PR ?而且官方仓库里的代码里面好多细节还没有实现,个人项目用会很难受。
    lujiaxing
        40
    lujiaxing  
       2024-03-20 13:53:31 +08:00
    Electron 挺好的啊, 非啥必须要用 QT 啊...
    又简单又好看. 哪儿还有这么好的框架...
    zhenwang
        41
    zhenwang  
       2024-03-20 13:55:04 +08:00
    列举些跨平台的:
    Rust:iced (支持多窗口)
    C/C++:wxWidgets (对各平台原生封装)
    C#:avalonia
    Kotlin:kotlin compose
    另外,还有一种模式就是,底层基于各平台的图形绘制 API ( OpenGL 、Metal 甚至是 wgpu )作为绘图能力,然后上层封装各种组件绘制的库,来“画”组件,好处是只要设备能画图,就能渲染组件,但是对原生多窗口支持不确保 OK 。这种方案有:Flutter 、各种立即模式渲染库( Im 模式 GUI ),甚至一般 Web 网页。
    xieren58
        42
    xieren58  
       2024-03-20 14:08:19 +08:00
    jgh004
        43
    jgh004  
       2024-03-20 14:12:23 +08:00
    yyt6801
        44
    yyt6801  
       2024-03-20 16:13:52 +08:00
    C++技术栈的话没有可以替换 QT 的,性能的话也基本没有可以比 QT 优化的更好了(参考 WPS ),倘若用户的配置低一些,差距就更明显; QT 的版权问题绕不过去
    Yjhenan
        45
    Yjhenan  
       2024-03-20 17:32:39 +08:00
    C#可以用 avaloniaui 有中文文档
    https://docs.avaloniaui.net/zh-Hans/docs/welcome
    jones2000
        46
    jones2000  
       2024-03-20 17:39:33 +08:00
    套壳浏览器 CEF
    R4rvZ6agNVWr56V0
        47
    R4rvZ6agNVWr56V0  
       2024-03-20 17:44:08 +08:00
    wxWidgets
    xuelu520
        48
    xuelu520  
       2024-03-20 18:01:08 +08:00
    别再推 flutter 了,卡的要死。
    9dP06m83vIV00l72
        49
    9dP06m83vIV00l72  
       2024-03-20 22:07:21 +08:00
    袋鼠使用 GTK4 + Vala 构建的,
    完整工具链:MSYS2 + Vala + Meson + VS Code (Vala) + NSIS ,用起来很顺,目前没遇到啥问题。
    9dP06m83vIV00l72
        50
    9dP06m83vIV00l72  
       2024-03-20 22:09:56 +08:00
    袋鼠使用 GTK4 + Vala 构建的,
    完整工具链:MSYS2 + GLib/GTK4 + GtkSourceView + Libsoup + Template-glib + Vala + Meson + VS Code (Vala) + NSIS

    用起来很顺,目前没遇到啥问题,欢迎大家试试这个方案。
    9dP06m83vIV00l72
        51
    9dP06m83vIV00l72  
       2024-03-20 22:10:54 +08:00
    最近又搭配了阿里的 通义灵码 AI 支持,撸码变得更丝滑了。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5077 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 09:21 PVG 17:21 LAX 01:21 JFK 04:21
    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