V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Trinity888
V2EX  ›  程序员

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

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

    请问目前有替换 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...
    但是越来越重是真的, 花里胡哨的小功能时不时就蹦一个出来...
    shuax
        13
    shuax  
       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 算了
    shuax
        21
    shuax  
       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 许可
    wjx0912
        30
    wjx0912  
       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 啊...
    又简单又好看. 哪儿还有这么好的框架...
    w4ngzhen
        41
    w4ngzhen  
       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 了,卡的要死。
    andytao
        49
    andytao  
       2024-03-20 22:07:21 +08:00
    袋鼠使用 GTK4 + Vala 构建的,
    完整工具链:MSYS2 + Vala + Meson + VS Code (Vala) + NSIS ,用起来很顺,目前没遇到啥问题。
    andytao
        50
    andytao  
       2024-03-20 22:09:56 +08:00
    袋鼠使用 GTK4 + Vala 构建的,
    完整工具链:MSYS2 + GLib/GTK4 + GtkSourceView + Libsoup + Template-glib + Vala + Meson + VS Code (Vala) + NSIS

    用起来很顺,目前没遇到啥问题,欢迎大家试试这个方案。
    andytao
        51
    andytao  
       2024-03-20 22:10:54 +08:00
    最近又搭配了阿里的 通义灵码 AI 支持,撸码变得更丝滑了。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2617 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 10:13 · PVG 18:13 · LAX 03:13 · JFK 06:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.