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

跨平台桌面开发用啥

  •  
  •   jiafaner · 2019-04-10 12:54:10 +08:00 · 6836 次点击
    这是一个创建于 2083 天前的主题,其中的信息可能已经有所发展或是发生改变。
    客户不要 swing,要求支持 Windows10 和 MacOS

    不能用 javascript

    现在用什么比较好?
    第 1 条附言  ·  2019-04-11 09:21:56 +08:00
    确定了,用的 QT

    又要学 C++了
    37 条回复    2019-04-10 23:16:49 +08:00
    loading
        1
    loading  
       2019-04-10 12:58:23 +08:00 via Android
    请两波人算了,不用 js
    ian19znj
        2
    ian19znj  
       2019-04-10 12:59:03 +08:00
    1. Qt.
    2. .NET
    iniko
        3
    iniko  
       2019-04-10 12:59:56 +08:00
    Electron
    mobaui
        4
    mobaui  
       2019-04-10 13:17:05 +08:00
    net core
    Blanke
        5
    Blanke  
       2019-04-10 13:19:36 +08:00
    javaFX?
    cxtrinityy
        6
    cxtrinityy  
       2019-04-10 13:32:58 +08:00 via Android   ❤️ 1
    Flutter 😏
    kzfile
        7
    kzfile  
       2019-04-10 13:38:18 +08:00
    客户不让用指定语言是什么鬼
    jiafaner
        8
    jiafaner  
    OP
       2019-04-10 14:24:19 +08:00
    @kzfile 因为客户有一个 IT 部门,他们有自己的规定。
    jiafaner
        9
    jiafaner  
    OP
       2019-04-10 14:26:41 +08:00
    @ian19znj QT 必须学 C++吗? .NET 不能用在 MacOS 吧?
    gitjcc
        10
    gitjcc  
       2019-04-10 14:44:00 +08:00
    @jiafaner 现学 C++ 恐怕来不及吧,直接招会的。技术选型还是要根据需求来,满足需求的情况下综合效率、成本等考虑选择方案。另外可以问一下客户不用 JavaScript 的原因,毕竟开发效率要高一些。
    Luckyray
        11
    Luckyray  
       2019-04-10 14:45:29 +08:00
    不用 swing 是因为难用? JavaFX 怎么样?
    loveour
        12
    loveour  
       2019-04-10 14:47:17 +08:00
    PySide2 ?
    loginv2
        13
    loginv2  
       2019-04-10 14:50:16 +08:00
    PyQt Lazarus
    huangdadaxian
        14
    huangdadaxian  
       2019-04-10 14:50:56 +08:00
    Delphi
    Nasei
        15
    Nasei  
       2019-04-10 15:01:54 +08:00 via Android
    c++ 就用 qt,c#有社区开发的跨平台 ui 框架
    learnshare
        16
    learnshare  
       2019-04-10 15:05:14 +08:00
    Qt
    TypeScript (投机取巧
    chenhui7373
        17
    chenhui7373  
       2019-04-10 15:07:10 +08:00
    QT 或 JavaFX

    激进一点就是 Flutter
    111qqz
        18
    111qqz  
       2019-04-10 15:15:11 +08:00 via Android
    Qt
    ian19znj
        19
    ian19znj  
       2019-04-10 16:07:10 +08:00
    @jiafaner #9 Qt 必须学 C++, 用 Qt 不会 C++的,用 PyQt,go-qml 的,都是歪门邪道。。。
    .NET 可以用 Xamarin 跑在 MacOS 上, 社区里还有例如 Avalonia 等等,但稳定性欠佳。
    jiafaner
        20
    jiafaner  
    OP
       2019-04-10 16:10:41 +08:00
    @ian19znj 谢谢

    给 Boss 提了各个方案,Boss 定了用 QT,又要学 C++了,知乎搜索了一下,被吓到了,,,,,,,C++学的难,用的难
    murmur
        21
    murmur  
       2019-04-10 16:12:37 +08:00
    qt 用的比较多比较成熟 wps 什么用的都是 qt
    idea 这种能吧 java 程序做的又好看又好用的 太少了
    wbing
        22
    wbing  
       2019-04-10 16:15:39 +08:00 via iPhone
    怕学 c++麻烦那就 PyQt 吧
    jamblues
        23
    jamblues  
       2019-04-10 16:19:02 +08:00 via iPhone
    必须 delphi
    peyppicp
        24
    peyppicp  
       2019-04-10 16:21:51 +08:00
    不用 swing 用 javafx 多好
    BCy66drFCvk1Ou87
        25
    BCy66drFCvk1Ou87  
       2019-04-10 16:26:57 +08:00
    electron 或 qt
    leon0903
        26
    leon0903  
       2019-04-10 16:35:27 +08:00
    感觉 javafx 好一点, qt 不会 C++ 很难用。
    shootsoft
        27
    shootsoft  
       2019-04-10 17:35:10 +08:00 via iPhone   ❤️ 1
    Qt + Python 也是可以的,给你个例子 https://github.com/shootsoft/PlutoVideoSnapshoter

    不过坑也不少…
    xdlucky
        28
    xdlucky  
       2019-04-10 17:39:39 +08:00
    说服 boss 用 electron, 速度快呀
    chungzhao
        29
    chungzhao  
       2019-04-10 18:55:04 +08:00
    @xdlucky 第一次听这种话:Electron 速度快
    xdlucky
        30
    xdlucky  
       2019-04-10 19:09:07 +08:00
    @chungzhao 不是 electron 速度快, 是开发速度快
    droiz
        31
    droiz  
       2019-04-10 19:39:15 +08:00
    我来说一个:redlang (手动狗头
    H0H
        32
    H0H  
       2019-04-10 20:25:24 +08:00
    作为技术商人,理性的说,跨平台 GUI 方案最适合的真的就是 Swing。Java 本就是市场占有率最高的语言,而且 JVM 本就是跨平台的最成熟使用最广泛的方案,技术人员很容易招聘,也很容易培养。

    更好的是,遇到客户对于 GUI 的某些特殊需求,自己扩展 Swing 组件自行绘制一个组件就能解决。而且 Java 有异常的话,命令行模式启动看下异常调用栈直接就解决问题了。C++忽然崩溃了都不知道到底哪错了,定位时间完全看老天。

    其他的像.Net ,本就对非 Windows 平台支持不够好,出问题了未必容易解决。至于嵌套浏览器的各种 Web 化方案,在各大操作系统是否足够稳定,长期运行是否不泄露内存,根本不知道有没有大厂商测试过。起码截止目前为止也没见哪个主流软件这样用。像迅雷这种软件,貌似也没实现跨平台,而是 Windows、Mac 各开发一套(根据界面布局完全不同推测)
    jlkm2010
        33
    jlkm2010  
       2019-04-10 20:32:31 +08:00
    javafx
    ian19znj
        34
    ian19znj  
       2019-04-10 20:59:17 +08:00   ❤️ 1
    @jiafaner #20 加油,学了 C++,再看其他语言都是小儿科。
    lfmy
        35
    lfmy  
       2019-04-10 21:41:37 +08:00
    qt ?
    logic159
        36
    logic159  
       2019-04-10 22:12:57 +08:00
    别用 Java 写 GUI 就好
    inframe
        37
    inframe  
       2019-04-10 23:16:49 +08:00 via Android
    jetbrains 用 Java 写了这么多大型 IDE (其实就一个 233)表明 Java 可以很好支持桌面开发
    当然 swing 用的人没有其他系列多

    可以都做个 demo 比较一下,看看有什么优缺点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   972 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:08 · PVG 03:08 · LAX 11:08 · JFK 14:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.