什么语言写 gui 脚本最快呢! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
1140601003
V2EX    程序员

什么语言写 gui 脚本最快呢!

  •  2
     
  •   1140601003 2023-11-16 21:41:17 +08:00 23108 次点击
    这是一个创建于 695 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近一直苦恼着给客户写脚本,客户的需求是 window 下 exe 带有图形界面,我今天用了一天时间去写了个 python 的 pyside6,就几个控件相当麻烦,而且打包 exe 的还有很多 bug ,相当麻烦。请问各位大佬,有木有什么语言可以快速写出 gui 且打包 exe 无 bug 呢!。
    120 条回复    2024-11-03 01:39:00 +08:00
    1  2  
    NessajCN
        1
    NessajCN  
       2023-11-16 21:42:35 +08:00   1
    那必然是 electron 大法好了
    freshgoose
        2
    freshgoose  
       2023-11-16 21:45:18 +08:00
    golang + js: wails
    c#: Avalonia
    seers
        3
    seers  
       2023-11-16 21:50:41 +08:00 via Android   1
    aardio
    ellermister
        4
    ellermister  
       2023-11-16 21:51:39 +08:00
    electron 巨大吧,不算应用,都一百多 M 吧?
    shinsekai
        5
    shinsekai  
       2023-11-16 21:52:07 +08:00
    qt designer?
    1140601003
        6
    1140601003  
    OP
       2023-11-16 21:54:21 +08:00
    @freshgoose 这个对于一些小需求太大型了吧,又不值得去写前后端交互
    kkgogo
        7
    kkgogo  
       2023-11-16 21:55:10 +08:00
    aardio 大概不会让你失望
    1140601003
        8
    1140601003  
    OP
       2023-11-16 21:55:23 +08:00
    @NessajCN 不太懂前端,这个打包后占用大小夸张吗?
    1140601003
        9
    1140601003  
    OP
       2023-11-16 21:56:01 +08:00
    @kkgogo 谢谢了,我去研究一下这个语言!!!
    1140601003
        10
    1140601003  
    OP
       2023-11-16 21:56:12 +08:00
    @seers 谢谢了,我去研究一下!!!感谢
    GeruzoniAnsasu
        11
    GeruzoniAnsasu  
       2023-11-16 21:56:43 +08:00
    ?????


    还真有没拖过控件的桌面 GUI 程序员?
    GeruzoniAnsasu
        12
    GeruzoniAnsasu  
       2023-11-16 21:57:28 +08:00   4
    你就不能下个 VS 创建个 winform 项目看一眼吗(恼
    forgottencoast
        13
    forgottencoast  
       2023-11-16 21:57:59 +08:00   3
    最快当然是.Net 的 WinForm 了。
    kingjpa
        14
    kingjpa  
       2023-11-16 21:59:06 +08:00
    你是写工具类 aardio ,包你满意。
    你要写花里胡哨那种设计感强的 electron
    cnbatch
        15
    cnbatch  
       2023-11-16 22:01:59 +08:00
    单纯想要快速造 Windows 的 GUI 程序,直接无脑选择 .Net 的 winform ,控件什么的直接拖,双击控件直接写具体方法
    iomect
        16
    iomect  
       2023-11-16 22:05:11 +08:00   1
    aardio+1
    脚本类的可以考虑 autoit3 或者 ahk 工具类的就是 aardio
    LightofHeven
        17
    LightofHeven  
       2023-11-16 22:12:07 +08:00
    vb mfc winform wpf 完美 exe
    aisk
        18
    aisk  
       2023-11-16 22:15:00 +08:00
    electron!
    neutrino
        19
    neutrino  
       2023-11-16 22:17:39 +08:00
    试试 lazarus ,糊界面很快,free pascal 很舒服
    cnbatch
        20
    cnbatch  
       2023-11-16 22:21:56 +08:00
    既然 OP 不懂前端,那就更加没必要强迫自己接触前端了,快速开发拖控件就完事
    BBCCBB
        21
    BBCCBB  
       2023-11-16 22:26:48 +08:00
    .net 啊, c# 拖拖拖
    1140601003
        22
    1140601003  
    OP
       2023-11-16 22:30:38 +08:00
    @kkgogo 感谢大哥,刚刚看到 28 行代码就可以把计算器功能给实现出来,妈的,比我写了半天的屎山代码 pyside6 强多了。
    1140601003
        23
    1140601003  
    OP
       2023-11-16 22:33:06 +08:00
    @GeruzoniAnsasu 我不是程序员。。。单纯写给点胶水脚本交付给别人。。。
    1140601003
        24
    1140601003  
    OP
       2023-11-16 22:34:03 +08:00
    @kingjpa 嗯!美不美化不重要了交付时间快,效率高就完事了。
    1140601003
        25
    1140601003  
    OP
       2023-11-16 22:35:05 +08:00
    @BBCCBB 感觉有种杀鸡用牛刀啊,我还没学 c#的 qaq ,以后再学,学习成本太大了,感谢你的回答
    1140601003
        26
    1140601003  
    OP
       2023-11-16 22:35:21 +08:00
    @neutrino 嗯,我去研究下。
    1140601003
        27
    1140601003  
    OP
       2023-11-16 22:35:31 +08:00
    @LightofHeven 好滴,我去研究下,感谢!
    1140601003
        28
    1140601003  
    OP
       2023-11-16 22:35:38 +08:00
    @cnbatch 好咧!
    1140601003
        29
    1140601003  
    OP
       2023-11-16 22:36:00 +08:00
    @GeruzoniAnsasu 可以,我去研究下。感谢
    1140601003
        30
    1140601003  
    OP
       2023-11-16 22:36:13 +08:00
    @aisk 好滴!感谢
    xiaoriri666
        31
    xiaoriri666  
       2023-11-16 22:51:29 +08:00
    WinForm
    macaodoll
        32
    macaodoll  
       2023-11-16 23:08:04 +08:00 via Android
    Java swing
    jones2000
        33
    jones2000  
       2023-11-16 23:12:54 +08:00
    CEF + h5
    lsk569937453
        34
    lsk569937453  
       2023-11-16 23:29:02 +08:00
    不要因为一个小的需求就多学一门语言,老老实实的用 wails 或者 electron 都可以。
    KingFong
        35
    KingFong  
    PRO
       2023-11-16 23:40:06 +08:00 via iPhone
    我提供另一种思路哈,用 pywebio 写一个 web 应用,用户连 exe 都不用,直接访问你的网站就行。
    q11391
        36
    q11391  
       2023-11-16 23:49:34 +08:00 via iPhone
    vb6
    leconio
        37
    leconio  
       2023-11-16 23:58:10 +08:00 via iPhone
    你会 py ,如果 ui 只是填一填数值,点一点按钮,拖动几个滑块,可以试试大数据方向的 gradio 。方便项目快速落地
    icy37785
        38
    icy37785  
       2023-11-17 00:09:38 +08:00 via iPhone   1
    既然只需要 windows 平台,那我必须提名鄙视链底端的易语言。
    Leonard
        39
    Leonard  
       2023-11-17 00:17:02 +08:00
    Tauri
    jianchang512
        40
    jianchang512  
       2023-11-17 01:00:49 +08:00
    pyqt5/pyside5 配合 qt designer ,妥妥拽拽的也很方便啊

    NewYear
        41
    NewYear  
       2023-11-17 01:23:59 +08:00
    @icy37785 易语言看到代码界面就懵逼了……还是上 VS 吧。
    NewYear
        42
    NewYear  
       2023-11-17 01:25:20 +08:00
    Windows 平台:

    自定义程度低,Winform ,托拉拽搞定
    自定义程度高,WPF

    微软自家的方案肯定是很香的。
    HaroldFinchNYC
        43
    HaroldFinchNYC      2023-11-17 02:18:11 +08:00
    @GeruzoniAnsasu
    @forgottencoast

    winforms 和 wpf 选哪个?
    houshuu
        44
    houshuu  
       2023-11-17 04:17:46 +08:00
    go 语言推荐 fyne. 打包单文件支持全平台, 很小.
    之前给一个那种 electron 应用打开就卡的目标平台开发过, 体验很丝滑.
    1140601003
        45
    1140601003  
    OP
       2023-11-17 08:01:57 +08:00
    1140601003
        46
    1140601003  
    OP
       2023-11-17 08:02:31 +08:00
    @yanjieee 感谢思路!
    1140601003
        47
    1140601003  
    OP
       2023-11-17 08:02:52 +08:00
    @leconio 好!!谢谢
    1140601003
        48
    1140601003  
    OP
       2023-11-17 08:03:57 +08:00
    @houshuu 好咧!
    xuxu5112
        49
    xuxu5112  
       2023-11-17 08:11:53 +08:00   1
    会 Python 且只需要很简单的 UI 可以试试 https://flet.dev/ ,flet 底层用 Flutter 实现,直接用 Python 写 ui ,好处是不用学新语言只用 Python 就可以,UI 比较现代化,可以打包成 exe 。当然我只在一个玩具项目用过,如果是正式运营的项目建议还是考虑比较成熟的框架。
    forgottencoast
        50
    forgottencoast  
       2023-11-17 08:13:33 +08:00
    div class="reply_content">@HaroldFinchNYC
    小工具 WinForm
    大项目或者 UI 设计要求高(就是不用默认的 UI 或者配色之类的)的 WPF 。
    bthulu
        51
    bthulu  
       2023-11-17 08:15:20 +08:00   1
    windows ui 首推易语言
    kekxv
        52
    kekxv  
       2023-11-17 08:34:26 +08:00 via iPhone
    windows 的话,试试 hta ?
    zjsxwc
        53
    zjsxwc  
       2023-11-17 08:34:29 +08:00
    StubbornHuang
        54
    StubbornHuang  
       2023-11-17 08:45:56 +08:00
    duilib
    crackidz
        55
    crackidz  
       2023-11-17 08:56:23 +08:00
    画界面需求很简单的话,WinForm 拖拖拽拽很简单
    knightdf
        56
    knightdf  
       2023-11-17 09:05:28 +08:00
    c#,而且 py+qt 也很快
    SirYuxuan
        57
    SirYuxuan  
       2023-11-17 09:06:12 +08:00
    易语言
    CodeXx
        58
    CodeXx  
       2023-11-17 09:13:14 +08:00
    易语言完美符合
    hevi
        59
    hevi  
       2023-11-17 09:16:01 +08:00   1
    啊???就我用 tkinter 吗
    loading
        60
    loading  
       2023-11-17 09:18:00 +08:00
    aardio
    yjd
        61
    yjd  
       2023-11-17 09:24:54 +08:00
    aardio 我记得是不支持动态调试的。
    xieren58
        62
    xieren58  
       2023-11-17 09:44:13 +08:00
    最近用 Avalonia 完成了一个项目, 还不错... 熟悉了, 开发起来非常快...
    bbxiong
        63
    bbxiong  
       2023-11-17 09:46:40 +08:00
    tool2d
        64
    tool2d  
       2023-11-17 10:00:51 +08:00
    以前用 IDE 的配套 UI 编辑器。

    现在觉得 JSX 很快,又能跨平台,不同平台编译出不同代码,习惯了开发也快。
    maybedk
        65
    maybedk  
       2023-11-17 10:08:21 +08:00
    python 的话 tkinter 解决不了吗?简单的界面可以胜任,而且因为是内置包,打包问题少。
    flmn
        66
    flmn  
       2023-11-17 10:11:59 +08:00
    选择需要考虑你的技术背景,开发的应用类型。

    从你描述,你应该熟悉 Python ,那我觉得 PySide 绝对是一个好选择。

    如果你开发的应用要求漂亮,交互体验好,你也愿意学 TypeScript ,那么 Electron 大法好。

    如果你有 C#基础,那么 WinForm 不会吃亏。
    simo
        67
    simo  
       2023-11-17 10:16:17 +08:00
    找自己熟悉的,就是最快,基本上做几个项目,手里有一套基础代码,都挺快的。
    但是从头开始,坑太多,得一个个的自己填,哪个也不省心。
    上面说的仅仅仅仅是快速
    还无 bug 的,见少识窄,真真没见过
    IamUNICODE
        68
    IamUNICODE  
       2023-11-17 10:19:09 +08:00
    qt-py
    当时只花了两天就搭出个玩意来
    sadfQED2
        69
    sadfQED2  
       2023-11-17 10:21:29 +08:00 via Android
    wpf
    winform
    qt
    electron

    正经项目就这几个里面选
    XIVN1987
        70
    XIVN1987  
       2023-11-17 10:24:48 +08:00
    tkinter 太丑了,,绝对不能用。。

    如果从零开始的话,,那显然 PySide6 最好,,界面美观、有 UI 设计工具、Qt 官方开发维护,,不过打包后软件比较大

    然后就是 wxPython ,,打包体积更小、软件界面更像本地应用。。
    hervey0424
        71
    hervey0424  
       2023-11-17 10:24:50 +08:00
    winform 是最快的
    dayeye2006199
        72
    dayeye2006199  
       2023-11-17 10:25:55 +08:00 via iPhone
    Web 的话是 python 加 streamlit
    realJamespond
        73
    realJamespond  
       2023-11-17 10:30:41 +08:00
    go+native window, 最小实现
    realJamespond
        74
    realJamespond  
       2023-11-17 10:32:44 +08:00
    winform 还要搞 vs ,你下载安装折腾完 这边 native window 几行代码就搞起了
    laqow
        75
    laqow  
       2023-11-17 10:33:02 +08:00
    想念 ActionScript3
    c2const
        76
    c2const  
       2023-11-17 10:33:25 +08:00
    1.windows 平台界面,小项目+要最快出活,必定是 C#的 winform 框架 :)
    ------------------------------------
    2.不过还是得考虑熟练度问题,所以尽量选你熟悉的语言和框架,小项目出活也不慢 :)
    vialon17
        77
    vialon17  
       2023-11-17 10:39:40 +08:00
    最近还在纠结 pyside6 webviewer cors 跨域问题,
    QWebEngineUrlScheme 、webpage.setting.cors_enabled 、QWebSocketServer
    真的要给转迷了,感觉 qt 框架学习起来挺心累的,
    特别官方 doc 还没有说明实例,一会就晕了。
    keethebest
        78
    keethebest  
       2023-11-17 10:44:07 +08:00
    推荐 wails ,简单方便,容易上手
    ktqFDx9m2Bvfq3y4
        79
    ktqFDx9m2Bvfq3y4  
       2023-11-17 10:45:20 +08:00
    @HaroldFinchNYC #43

    Winforms 上手极快,不太会写代码也可以。但界面想做漂亮就麻烦。
    WPF:上手会慢些因为要学 XAML 和 MVVM ,但描述性 UI 和 Winform 是完全不一样的体验,桌面软件做多了还是更喜欢 WPF 。
    wildman9527
        80
    wildman9527  
       2023-11-17 11:08:45 +08:00   1
    这个帖子好,mark 了先 。。
    ConfusedBiscuit
        81
    ConfusedBiscuit  
       2023-11-17 11:56:41 +08:00
    怎么感觉有点儿跑偏了,OP 看起来
    1. 熟悉 Python
    2. 就几个控件,不需要做复杂界面
    3. 希望打包成 exe

    那妥妥的 Python 内置的 tkinter 啊,折腾啥 Qt (虽然我曾经经常用 Qt ),折腾啥 electron
    fox0001
        82
    fox0001  
       2023-11-17 11:59:13 +08:00
    肯定是你最属性的语言
    fox0001
        83
    fox0001  
       2023-11-17 11:59:32 +08:00
    @fox0001 #82 改为:肯定是你最熟悉的语言
    gowas
        84
    gowas  
       2023-11-17 12:00:00 +08:00
    QQ 都 electron 了 还嫌大吗?
    andyhuzhill
        85
    andyhuzhill  
       2023-11-17 12:10:57 +08:00
    lazarus
    NoOneNoBody
        86
    NoOneNoBody  
       2023-11-17 12:18:44 +08:00
    powershell + winform 无需打包,除非为了闭源

    @GeruzoniAnsasu #11
    me
    严格说肯定是有拖过,初学 pyqt 时是用 designer 的
    但一个自用的 pyqt5 gui ,粗略数了一下,9 个 tab ,>200 个控件,从开始就全是手打代码
    xiangyuecn
        87
    xiangyuecn  
       2023-11-17 12:25:22 +08:00
    .NET Framework 4.5 + C#,winform 拖两控件。低版本的.NET Framework 都不用安装,windows 自带高版本。

    高级一点的,可以不安装 Visual Studio ,只需要.NET Framework ,自己用脚本编译源码成 exe ,纯文本编辑器就能开发。

    -----

    Electron 最实在,完全不需要编辑器,完全不需要 npm 、nodejs 、node_modules ,纯文本编写 js 代码就能跑,连编译都省了;只需你编写的 js 文件 +下载的 Electron 官方可执行文件,完事。
    mmdsun
        88
    mmdsun  
       2023-11-17 12:38:43 +08:00 via iPhone
    Windows 系统肯定是 C#
    youyang
        89
    youyang  
       2023-11-17 12:47:39 +08:00
    @ellermister agree no more
    l1ve
        90
    l1ve  
       2023-11-17 13:03:19 +08:00
    易语言一票
    这个是真的简单...
    freyr
        91
    freyr  
       2023-11-17 13:05:37 +08:00
    限定 Python 的话,WIndows 用 PyQt + Qt Designer 还是方便
    wzwwzw
        92
    wzwwzw  
       2023-11-17 13:24:19 +08:00
    那必然还是 electron 最快。
    XIVN1987
        93
    XIVN1987  
       2023-11-17 13:43:47 +08:00
    要是 Python 能改进下 Tkinter ,,让 Tkinter 显示界面好看点儿就好了。。
    ldyisbest
        94
    ldyisbest  
       2023-11-17 14:12:18 +08:00
    pywebview wails tauri 可以吗,直接写 html
    ShadowPower
        95
    ShadowPower  
       2023-11-17 14:29:40 +08:00
    WinForm 最快

    无需折腾,开发环境只需要装 VS ,选上.net 桌面开发,就好了

    文档齐全,资料丰富,技术成熟
    整个开发、调试工作都只需要在 VS 里完成,调试器还特别强大
    打包 exe 毫无难度,一键生成

    界面只需要拖拽改改属性就做出来了
    双击界面上的控件给它添加代码逻辑,程序就写好了
    xu455255849
        96
    xu455255849  
       2023-11-17 15:11:09 +08:00
    那必然还是 electron 最快。
    Mark24
        97
    Mark24  
       2023-11-17 15:31:56 +08:00
    简单的话:

    https://github.com/AndyObtiva/glimmer-dsl-libui

    Ruby + LibUI+ glimmer DSL
    test0x01
        98
    test0x01  
       2023-11-17 15:50:21 +08:00 via Android
    外包
    tangtang369
        99
    tangtang369  
       2023-11-17 16:04:41 +08:00
    qt designer 我觉得是最快的 拖下样子 对按钮事件就行了
    jevonszmx
        100
    jevonszmx  
       2023-11-17 16:17:06 +08:00
    electron ,别因为现在需求简单就找个不熟悉的随便拖拖,后期肯定需求会变多,到时还要重构,搞死人
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2507 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 01:51 PVG 09:51 LAX 18:51 JFK 21:51
    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