如何选择快速开发桌面小工具的技术栈? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
acctv2
V2EX    编程

如何选择快速开发桌面小工具的技术栈?

  •  1
     
  •   acctv2 2022 年 5 月 31 日 3655 次点击
    这是一个创建于 1353 天前的主题,其中的信息可能已经有所发展或是发生改变。

    准备写一些个人使用的小工具,希望有个 GUI ,那么选择什么技术栈更加便捷快速呢?

    需求如下:

    • Win10/Win11 即可,能跨 Linux 更好,不能也没关系
    • 能够快速成型,不需要很复杂的交互界面
    • 最好能够打包成独立的 exe 应用
    • 最好能方便嵌入 python 程序,或者调用 python 脚本

    个人编程经验:

    • C/C++:有一些嵌入式的经验
    • Python:目前我自己大部分小工具都是用 python 写的,但是没有 GUI ,看了下 pyqt 觉得略复杂了
    • C#:曾经写过一个 WPF 上位机,界面比较简单,同样觉得 WPF 有点重了(不够短平快)

    推荐的框架不限于上面我个人的编程经验,其他的非 C python 的也可以推荐。比如我最近了解到一个轻量框架 Lazarus ( deiphi 替代那个),正在考虑。

    第 1 条附言    2022 年 6 月 6 日

    经过再三的考虑,我决定还是用WPF了(搞了半天还是选择用自己更熟悉的东西)。

    原因有以下两点:

    • IronPython复活了(有点火星了),所以我现在的Python代码应该能正常的迁入IronPython3
    • 放弃了强迫症。之前用WPF有点强迫症,觉得一定要遵循那套开发流程,埋头写XAML,先用Grid搭界面区域,然后调整Padding、Margin慢慢折腾,然后再整套MVVM体系。

    现在想通了,一个小工具,纯粹的一个单窗口应用,干嘛要杀鸡用牛刀

    • 直接设置NoResize,然后拖控件用设计器默认的绝对布局
    • 放弃MVVM框架,直接在后端写回调函数,实在要想做数据绑定就直接在后端CS文件里写对象绑定,不做注入
    • 控件不够用?直接上SyncFusion,大全套控件且个人用户免费

    这一通操作下来,感觉比tkinter还快了。

    19 条回复    2022-06-21 15:48:01 +08:00
    cutepig
        1
    cutepig  
       2022 年 5 月 31 日 via Android
    python 自带的 tkinter 框架如何
    ClericPy
        2
    ClericPy  
       2022 年 5 月 31 日
    autohotkey 哈哈...

    会啥用啥吧, go 和 Python 还有 JS 都还行

    Python 的怎么能不知道 pysimplegui
    acctv2
        3
    acctv2  
    OP
       2022 年 5 月 31 日
    @cutepig 主要是觉得没有可视化界面要差一些。

    其实我的需求简单来说就是:能快速写个能看的界面,还能兼容 python 代码(蛮多小工具用 python 在写的),虽然切换成其他语言也行
    acctv2
        4
    acctv2  
    OP
       2022 年 5 月 31 日
    @ClericPy 我不是办公自动化,还是涉及到一部分 win32 API 调用以及计算的
    ClericPy
        5
    ClericPy  
       2022 年 5 月 31 日
    @acctv2 那个支持的也挺好的...

    不过既然都 Python 了, 界面方面除了上面提到的, 还有 pywebio 作为 web UI 可以参考, 不要 GUI 只要 TUI 也有 questionary

    反正都跨平台的随便折腾
    buxudashi
        6
    buxudashi  
       2022 年 5 月 31 日
    aardio
    eason1874
        7
    eason1874  
       2022 年 5 月 31 日
    以前挺多 Python + Web 组合

    Python 起一个 HTTP 服务,打开管理界面就是在浏览器打开网页,在网页中交互
    iyear
        8
    iyear  
       2022 年 5 月 31 日   1
    我来说个不一样的,易语言(上手半个小时)画界面,核心用 go 、py 写,易语言调核心程序。开发速度巨快
    iyear
        9
    iyear  
       2022 年 5 月 31 日
    这样的方案。只能 win ,可以直接打包成独立 exe 单文件。界面拖组件就行,满足调 win32 API ,精易模块已经把常用的 win32api 封装的差不多了
    ufan0
        10
    ufan0  
       2022 年 5 月 31 日
    我比较擅长 Java ,使用 Spring Boot 做这种工具,比如我的文件夹整理就是使用 spring boot 做的。(这个比较重,做小工具属实没必要)

    此前了解到 Rust 和 flutter 也不错,可以试试。

    朋友们用的多是 C 艹艹以及 shell 。

    仅供参考。
    hs0000t
        11
    hs0000t  
       2022 年 5 月 31 日 via Android
    @iyear 易语言代码为二进制格式存储,无法进行版本管理,且购买后才能编译,编译产物还特别容易报毒,破解版或多或少都有后门
    iyear
        12
    iyear  
       2022 年 5 月 31 日
    @hs0000t #11 个人使用所以这么推荐,如果要做分发或者付费服务肯定不能这么做
    acctv2
        13
    acctv2  
    OP
       2022 年 6 月 1 日 via Android
    @ClericPy 现在准备 pysimplegui 和 tui 都尝试一下了

    tui 打算用 cmd 模块和 argparser
    ClericPy
        14
    ClericPy  
       2022 年 6 月 1 日   1
    @acctv2 tui 有很多现成的何必自己搞呢... 之前还有个 Textual 不过我 Windows 上 cmder 有 bug 就没继续用. 正常情况下简单用用 pysimplegui 够了, 就是 tk 没什么好看的主题, 或者直接 webui

    早点睡吧唉
    lmqdlr
        15
    lmqdlr  
       2022 年 6 月 1 日 via Android
    Python 的话,不复杂的可以考虑 sciter
    GeruzoniAnsasu
        16
    GeruzoniAnsasu  
       2022 年 6 月 1 日
    C# + winform 拖控件双击控件写事件响应函数就完事了这不比任何 gui 框架都简单得多
    acctv2
        17
    acctv2  
    OP
       2022 年 6 月 1 日
    @GeruzoniAnsasu 主要我之前很多小工具代码都是 python 写的,不想费很大力气重新迁移到别的语言上去,想能够很便捷的嵌入 python 脚本
    ljlljl0
        18
    ljlljl0  
       2022 年 6 月 3 日
    易语言,我感觉就是 Linux 下的 python 一样方便。写小工具太丝滑了。
    Bronya
        19
    Bronya  
       2022 年 6 月 21 日
    情况和楼主差不多,看到这篇帖子之后我决定也不搞什么 MAUI 、UNO 、Avalonia 、WIN UI 啥的了,直接 WPF+SyncFusion 走起,不过我的强迫症还在,还是走 MVVM 那套,用了 Prism+ReactivePropertity 之后 MVVM 也没那么麻烦了,而且自己的工具这么写看着心里舒服。不然工作是看同事拉的 shi ,写自己工具还要看自己的 shi ,这就有点受虐了。
    之前用了破解的 Infragistics 控件,看了 SyncFusion 之后发现后者更好看,决定更换。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     955 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 18:36 PVG 02:36 LAX 10:36 JFK 13:36
    Do have faith in what you're doing.
    ubao msn 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