跨平台桌面开发用啥 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jiafaner
V2EX    问与答

跨平台桌面开发用啥

  •  
  •   jiafaner 2019-04-10 12:54:10 +08:00 7233 次点击
    这是一个创建于 2378 天前的主题,其中的信息可能已经有所发展或是发生改变。
    客户不要 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
    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
    midasplus
        18
    midasplus  
       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/a>  
       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 ?
    allinQQQ
        36
    allinQQQ  
       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     Solana     1292 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:14 PVG 01:14 LAX 10:14 JFK 13:14
    Do have faith in what you're doing.
    ubao 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