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

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

  •  1
     
  •   Trinity888 · 278 天前 · 6564 次点击
    这是一个创建于 278 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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

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

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

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

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