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

Window 平台,开发客户端软件,大家一般用什么语言写界面呀?

  •  3
     
  •   Trinity888 · 2020-04-29 14:41:44 +08:00 · 12878 次点击
    这是一个创建于 1704 天前的主题,其中的信息可能已经有所发展或是发生改变。
    95 条回复    2020-06-03 16:10:17 +08:00
    littleshy
        1
    littleshy  
       2020-04-29 14:52:17 +08:00   ❤️ 5
    只关心 Windows 平台的话,C#啊,WPF 爽到飞起。
    Fx8m
        2
    Fx8m  
       2020-04-29 15:10:17 +08:00   ❤️ 2
    C#
    ligiggy
        3
    ligiggy  
       2020-04-29 15:15:18 +08:00 via iPhone   ❤️ 2
    winform wpf mfc
    liangzimo
        4
    liangzimo  
       2020-04-29 15:17:07 +08:00
    WPF 啊,直接起飞
    Trinity888
        5
    Trinity888  
    OP
       2020-04-29 15:19:10 +08:00
    @littleshy 哦,是不是 Qt 也可以呀? WPF 、C# 不擅长,你对 WPF 熟悉?
    Trinity888
        6
    Trinity888  
    OP
       2020-04-29 15:20:37 +08:00
    @ligiggy wpf 能支持 Linux 吗?
    littleshy
        7
    littleshy  
       2020-04-29 15:32:51 +08:00   ❤️ 2
    @Trinity888 #5 做过一段时间 WPF,开发体验非常爽。
    wpf 不能跨平台,如果有跨平台需要,还是 Qt 吧。
    如果只是 Windows 平台,那 WPF 肯定是最佳选择。
    Ackvincent
        8
    Ackvincent  
       2020-04-29 15:33:06 +08:00
    界面直接上 QT 简单快速
    thfurior
        9
    thfurior  
       2020-04-29 15:34:38 +08:00   ❤️ 2
    C#,效率贼高
    onecode
        10
    onecode  
       2020-04-29 15:37:22 +08:00   ❤️ 2
    如果只是 Windows,那肯定 wpf,想都不要想
    None123
        11
    None123  
       2020-04-29 15:37:50 +08:00
    跨平台 用 electron
    ligiggy
        12
    ligiggy  
       2020-04-29 15:40:07 +08:00
    @Trinity888 不支持。现在 C#还是只能用.Net FrameWork 在 VS 上做界面。之前有.Net Core 的 NanUI,不知道现在咋样了。
    ragnaroks
        13
    ragnaroks  
       2020-04-29 15:43:11 +08:00   ❤️ 2
    唯一不二选择 WPF,别的都是二的选择


    @ligiggy dotnet core 有 WPF 实现,不过仅 windows
    ingbyr
        14
    ingbyr  
       2020-04-29 15:43:18 +08:00 via iPhone   ❤️ 2
    javafx 一把梭
    ligiggy
        15
    ligiggy  
       2020-04-29 15:57:53 +08:00
    @ragnaroks 我去了解下
    a2532521
        16
    a2532521  
       2020-04-29 16:01:39 +08:00
    win 平台坑太多
    Trinity888
        17
    Trinity888  
    OP
       2020-04-29 16:11:25 +08:00
    是啊。Window 说起来真是一把鼻涕一把泪,C#程序:要求安装的东西好多,各种 dll 不存在情况。WPF 自己不擅长,谢谢同伴们的回复。
    Trinity888
        18
    Trinity888  
    OP
       2020-04-29 16:13:48 +08:00   ❤️ 1
    @ingbyr Java 也可以,效果怎么样?因为本人是 Java 出身,历年来也是被各种客户端围绕,Qt 也做过一些
    ingbyr
        19
    ingbyr  
       2020-04-29 16:25:24 +08:00 via iPhone
    @Trinity888 只写过一个小工具,javafx 主要是起步比较晚,甚至直到 java14 才有一个官方的打包工具,跨平台开发还不错
    abcbuzhiming
        20
    abcbuzhiming  
       2020-04-29 17:04:33 +08:00
    QT 是 C++啊,怎么会有人觉得 QT 简单,出点问题你会自己处理吗?别低估 C++的坑
    TangMonk
        21
    TangMonk  
       2020-04-29 17:15:38 +08:00 via iPhone
    Lazarus 不错,跨平台
    ajaxfunction
        22
    ajaxfunction  
       2020-04-29 17:30:49 +08:00
    套壳
    jin7
        23
    jin7  
       2020-04-29 17:37:07 +08:00
    python & QT 简单好用
    Vindroid
        24
    Vindroid  
       2020-04-29 17:39:44 +08:00
    qt c++ 因为要跨多个平台,没得选
    arthas2234
        25
    arthas2234  
       2020-04-29 17:41:11 +08:00   ❤️ 1
    我手上也有个做 windows 桌面软件的项目,考虑用 electron 实现,还能多学习下前端技术
    hoyixi
        26
    hoyixi  
       2020-04-29 17:43:40 +08:00
    如果是商业应用,Qt 要钱
    xcstream
        27
    xcstream  
       2020-04-29 17:50:16 +08:00   ❤️ 1
    electron
    MinQ
        28
    MinQ  
       2020-04-29 17:50:21 +08:00   ❤️ 1
    C#,WPF,弹射起飞,吊打 Qt 十八条街
    MinQ
        29
    MinQ  
       2020-04-29 17:51:26 +08:00   ❤️ 1
    @Trinity888 不用吧,现在塞个.net framework 4.7 进去,啥问题都解决了
    dearmymy
        30
    dearmymy  
       2020-04-29 17:52:56 +08:00
    mfc
    xcstream
        31
    xcstream  
       2020-04-29 17:53:14 +08:00
    web 生态丰富画图表什么的比较方便
    kiracyan
        32
    kiracyan  
       2020-04-29 17:55:03 +08:00
    QT WPF Winform
    salamanderMH
        33
    salamanderMH  
       2020-04-29 17:58:50 +08:00 via Android
    wpf 挺好的。
    duan602728596
        34
    duan602728596  
       2020-04-29 18:06:28 +08:00 via iPhone
    曾经试过 react-nodegui,虽然已经接近前端开发的体验了,但是还是有很多坑。追求快的话还是推荐 electron 或 nwjs 吧
    leon0903
        35
    leon0903  
       2020-04-29 18:34:54 +08:00
    javafx
    agoodob
        36
    agoodob  
       2020-04-29 18:38:40 +08:00
    UFc8704I4Bv63gy2
        37
    UFc8704I4Bv63gy2  
       2020-04-29 18:49:54 +08:00 via Android
    wxwidgets,推荐,原生跨平台,qt 非原生跨平台
    snailya
        38
    snailya  
       2020-04-29 20:26:40 +08:00   ❤️ 2
    WPF 好东西
    luozic
        39
    luozic  
       2020-04-29 20:32:19 +08:00   ❤️ 2
    不跨啥平台,果断 C#
    Kylin30
        40
    Kylin30  
       2020-04-29 20:59:43 +08:00
    c#,我只会一点 python 都能做东西,就是机器配置差,vs 有点儿吃力。
    andytao
        41
    andytao  
       2020-04-29 21:24:15 +08:00
    我用 GTK3,熟练了用得也很溜。。。

    现在在做 DBKangaroo, Github 搜一下即可。
    alleng
        42
    alleng  
       2020-04-29 22:06:28 +08:00
    懂 js 的话用 electron
    LFee
        43
    LFee  
       2020-04-29 22:11:12 +08:00
    @jin7 最近我也是在用 python+qt 写然后进行打包,然而缺少 DLL 文件,找了一圈还是解决不了,准备放弃了。我还是太菜
    djoiwhud
        44
    djoiwhud  
       2020-04-29 22:19:33 +08:00 via Android
    reactjs
    Tomotoes
        45
    Tomotoes  
       2020-04-29 23:13:21 +08:00 via Android
    electron-vue + elementui 开发效率很快。

    缺点也很明显,electron 嘛。
    Hellert
        46
    Hellert  
       2020-04-29 23:31:44 +08:00 via Android   ❤️ 2
    Delphi
    statfall
        47
    statfall  
       2020-04-30 00:06:36 +08:00 via Android
    vb 哈哈哈
    BlackGrasshopper
        48
    BlackGrasshopper  
       2020-04-30 01:15:04 +08:00   ❤️ 1
    这时候就得说下跨平台方案 xamarin 了 ios 和 android 都能写
    kergee
        49
    kergee  
       2020-04-30 06:54:44 +08:00   ❤️ 1
    WPF
    MonoLogueChi
        50
    MonoLogueChi  
       2020-04-30 07:12:09 +08:00 via Android
    wpf,xml 写界面
    crab
        51
    crab  
       2020-04-30 07:28:41 +08:00
    还没开始用 electron
    ww940521
        52
    ww940521  
       2020-04-30 07:51:37 +08:00 via Android
    winform 拖拖拖
    janxin
        53
    janxin  
       2020-04-30 08:10:58 +08:00   ❤️ 2
    C#
    ZZSZZSZZS
        54
    ZZSZZSZZS  
       2020-04-30 08:19:32 +08:00 via iPhone
    Qt,就是 C++用着确实要麻烦一些
    kpingdd
        55
    kpingdd  
       2020-04-30 08:21:47 +08:00 via Android
    易语言 #手动狗头
    ZZSZZSZZS
        56
    ZZSZZSZZS  
       2020-04-30 08:23:02 +08:00 via iPhone
    @hoyixi qt 库基于 lgpl 协议,如果不修改 qt 库的代码,用动态链接的方式发布商业应用是不需要向 qt 交钱的
    xingfu0539
        57
    xingfu0539  
       2020-04-30 08:23:05 +08:00 via Android   ❤️ 1
    国内这些大厂一般都是 c++,界面 directui 库(很多大厂自己维护一套,网上也有开源的,比如 duilib,soui ),好处是安装包小,不追求这个纯 Windows 平台,建议直接 wpf
    mostkia
        58
    mostkia  
       2020-04-30 09:03:55 +08:00
    说 vb 的够了,还有,现在 html 打包界面也挺好的,成本低。网易云、微信之类的估计都是这种类型的
    eroko
        59
    eroko  
       2020-04-30 09:18:25 +08:00   ❤️ 2
    windows 平台的话肯定是 WPF 了,不用想其他
    ych8398527
        60
    ych8398527  
       2020-04-30 09:30:16 +08:00   ❤️ 2
    wpf
    xoxo419
        61
    xoxo419  
       2020-04-30 09:37:46 +08:00
    /t/179360 /t/521473
    关于 windows GUI 开发语言的帖子
    ddup
        62
    ddup  
       2020-04-30 09:44:30 +08:00   ❤️ 1
    C# WinForm || C# WPF || Electron
    yuankui
        63
    yuankui  
       2020-04-30 09:44:43 +08:00
    js+electron,一把梭
    newmlp
        64
    newmlp  
       2020-04-30 09:49:37 +08:00
    Qt
    Torpedo
        65
    Torpedo  
       2020-04-30 09:57:15 +08:00
    @Trinity888 java 写 c#也是分分钟吧
    berumotto
        66
    berumotto  
       2020-04-30 10:08:07 +08:00   ❤️ 1
    Windows 界面当然 WPF
    raptor
        67
    raptor  
       2020-04-30 10:20:58 +08:00
    这年头还不用 Electron 是不是有点 out
    paoqi2048
        68
    paoqi2048  
       2020-04-30 10:31:50 +08:00
    Qt
    aydd2004
        69
    aydd2004  
       2020-04-30 10:48:30 +08:00   ❤️ 1
    就没见过比 C#爽的 当然你做的酷炫点还是有点烦

    为什么前端那些框架就不能出个 vs 这种类型的玩意,拖控件,写事件代码,搞定。
    12101111
        70
    12101111  
       2020-04-30 10:53:11 +08:00   ❤️ 2
    为了节能减排,为了客户体验,不要用 Electron, 除非你能写成 vscode 那样
    Chenamy2017
        71
    Chenamy2017  
       2020-04-30 10:57:08 +08:00
    看来说 Electron 的人不少,这下我放心了,可以继续开发我的 Electron + VUE + ElementUI 项目了。
    话说我以前开发 QT 的,也是跨平台,挺好用的。
    ingramyang
        72
    ingramyang  
       2020-04-30 10:57:46 +08:00
    请使用 QT,不要在写单平台代码了,Windows 需要被脱离。
    wu67
        73
    wu67  
       2020-04-30 11:17:37 +08:00
    @aydd2004 .net asp 了解一下...
    Cloutain
        74
    Cloutain  
       2020-04-30 11:21:53 +08:00
    Qt yes!!!!
    WPF yes!!!! yes!!!!
    易语言 yes yes yes!!!!!
    heyhumor
        75
    heyhumor  
       2020-04-30 11:24:20 +08:00
    Dephi 是个好东西,C#鼻祖
    brucezhou
        76
    brucezhou  
       2020-04-30 11:40:29 +08:00
    electron 加 reactjs,直接起飞,谁还用 WPF 那套东西
    selectAndAction
        77
    selectAndAction  
       2020-04-30 12:32:23 +08:00
    C++
    faketemp
        78
    faketemp  
       2020-04-30 12:48:48 +08:00
    Winform/WPF/java 要所有客户机强制安装运行时
    Electron/QT 动辄都要几十兆起

    好怀念当年 VB/C/C++/旧 Delphi 的时候,编译出的文件从不担心任何兼容不依赖任何乱七八糟的东西,写出的工具都是 kb 最多几兆搞定,这才是真轻量

    现在随便写个计算器,不装个几十上百兆的东西都跑不起
    不知道程序设计技术是大发展了,还是在倒退 ε=(´ο`*)))唉
    yolee
        79
    yolee  
       2020-04-30 13:05:56 +08:00
    打算跨平台:QT,只在 win 使用:.Net 。
    Jirajine
        80
    Jirajine  
       2020-04-30 13:19:01 +08:00 via Android
    sciter,体积小,轻量,html 写界面。
    复杂应用 electron 还是首选,确实体积大占内存多,但用 native 扩展 /服务 ipc/wasm 的情况下性能不会是瓶颈,以此带来的丰富的生态和快速的开发效率绝对是值得的。
    asdjgfr
        81
    asdjgfr  
       2020-04-30 13:20:06 +08:00
    我们公司用的 electron
    nerocc
        82
    nerocc  
       2020-04-30 14:05:36 +08:00   ❤️ 6
    楼主不要乱听吧,这个不是那么简单的问题的。
    一个现代的工程,除了用什么技术框架以外还要考虑很多别的东西的。技术的未来发展,跨平台的可能性,代码重复利用性,等等。
    技术投资也是一个需要考虑的大问题,你这么问,意思应该就是需要现学了,那尽量不要去学一个马上就要被淘汰的技术。

    如果项目是有可能需要跨平台的话,尽量考虑 Web + electron 。

    qt 的话,尽量不推荐了。这个年代投资在 c++和 qt 上的技术,看不到未来有多大的回报。
    winform 是一个非常老的技术了,wpf 也是。如果选择用.Net Framework 来写 winform 或者 wpf 的话,你要考虑清楚.Net Framework 已经过时淘汰了。现在使用的.Net 版本是.Net Core(从 1.0 迭代到现在的 3.1),开源并且可以跨平台,甚至 webassembly 。下个月 Build 大会.Net 5.0 就要开启预览版了(现在处在 preview-3)。.Net 5.0 是.Net Core 的下一个版本,也是.Net 的未来,所以去掉了 Core 这个名字,也跳过了本属于.Net Framework 的 4.x 的版本号,直接统一使用 5.0 的版本号。5.0 之后,所有的.Net 项目都会是同一个 SDK 和同一个 Runtime,代表着基本上学一套知识,能用来写任何( web,mobile,desktop,IoT,ML,micro service,gaming )种类的项目。

    winform 和 wpf 也可以用.Net Core 来写,但是 winform 和 wpf 都是 win32 的框架,编译出来的程序,在未来的 Windows 10X 上面注定是在容器内运行的非原生应用。并且 winform 和 wpf 的 UI 全都不是硬件加速的,而且没有触摸优化,没有黑白模式的自动模板。

    很多人这个时候就要开始推荐 UWP 了,用 C#和 XAML,是 Windows 10 和其分支里面唯一的原生应用模式 /框架。但是 UWP 也是只是适合个别应用的,虽然我也会极力推荐 UWP,但是绝不是不考虑适合程度的盲目推荐。

    那到底还有什么选项呢?
    其实 Windows 10 是有自己的原生 UI 库的,叫 WinUI,完全按照 Fluent Design System 的规范用 C++编写,UI 硬件加速。以前版本是集成在系统内的,仅供 UWP 使用。现在的 3.0 之前的版本,虽然也是仅供 UWP 使用,但是可以打包在应用层,以免不同版本的系统不兼容有的控件。在几天后的 Build 大会,3.0 会正式进入测试阶段,到时候任何应用都可以使用 WinUI 来编写 UI,逻辑层用什么语言 /框架都可以。所以,不着急的话,稍微等一等.Net 5.0 + WinUI 3.0 。 这两个放在一起会是一个非常强大的组合。现代化的语言,工具和 UI,至少让你可以放心的做技术投资。
    kwklover
        83
    kwklover  
       2020-04-30 14:42:10 +08:00 via Android
    如果是自己想做个作品,那就什么容易上手就用那个吧,我现在用 winform,以后会考虑 WPF,一种技术可能不代表未来,但要淘汰也不是三五年内的事情了,考虑太多酒多虑了。你看看 asp 就知道了,上古时代的技术,淘汰十几年了还有人用呢。
    mopian
        84
    mopian  
       2020-04-30 17:59:19 +08:00
    跨平台:要性能用 Qt,要简单用 electron
    纯 Windows:Qt or WPF
    baobao1270
        85
    baobao1270  
       2020-04-30 18:32:19 +08:00
    跨平台:不在乎性能 electron,在乎性能 Qt
    纯 Windows:简单点 C#+WPF ;复杂点 duilib ;随便玩玩 UWP
    sunbreak
        86
    sunbreak  
       2020-05-01 09:35:49 +08:00
    要求不高的项目,可以考虑 Flutter

    36 记智能手写本( Android/iOS/Web/Windows/macOS )
    https://www.36notes.com/html/download/windows.html


    我们用 Agora 做教学场景的远程白板,就包装了下开源出来了

    Agora RTM
    https://github.com/woodemi/Flutter-RTM-Desktop

    Agora RTC
    https://github.com/woodemi/Flutter-SDK-Desktop
    sunbreak
        87
    sunbreak  
       2020-05-01 09:53:31 +08:00
    另外建议先评估下是否需要开发客户端,现在大部分情况下 Web 足够用了。

    要么特别复杂,要么场景独特(比如频繁唤起,后台常驻),要么有硬件交互( 36 记智能手写本)
    其他情况能用 Web 就用 Web 吧,优势比 Native 多太多了
    AloneGhost
        88
    AloneGhost  
       2020-05-01 12:57:53 +08:00
    一般用的 python 写的,界面就用 PyQt5 这个库
    admirez
        89
    admirez  
       2020-05-01 22:32:17 +08:00
    我一直用 delphi,简单,快速
    Trinity888
        90
    Trinity888  
    OP
       2020-05-02 11:46:44 +08:00
    @all 感谢大家给我提了这么多建议,我会考虑
    Trinity888
        91
    Trinity888  
    OP
       2020-05-02 11:47:18 +08:00
    @所有人 感谢大家给我提了这么多建议,我会考虑
    secondwtq
        92
    secondwtq  
       2020-05-02 13:34:58 +08:00 via iPhone
    说起 Delphi,我前段时间买了 Beyond Compare,然后好奇看了下这东西的依赖。发现 BC 是用 Pascal 写的,GUI 库应该是 FreePascal 的 Lazarus 提供的 LCL,BC Linux 版的 LCL 底层是 Qt 。

    看起来还挺像样的,玩 Delphi 的有人接盘了……
    lsj8924
        93
    lsj8924  
       2020-05-02 21:54:45 +08:00
    听我的,MFC 很好用。
    sunbreak
        94
    sunbreak  
       2020-05-18 01:06:49 +08:00
    所以楼主最后选了什么?
    Trinity888
        95
    Trinity888  
    OP
       2020-06-03 16:10:17 +08:00
    @sunbreak 目前在需求阶段,待确认后再定。目前也是倾向使用 web 方式,但要看客户方的设备是否能支持。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2452 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 79ms · UTC 15:48 · PVG 23:48 · LAX 07:48 · JFK 10:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.