V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
acctv2
V2EX  ›  编程

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

  •  1
     
  •   acctv2 · 2022-05-31 21:06:33 +08:00 · 3094 次点击
    这是一个创建于 906 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    需求如下:

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

    个人编程经验:

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

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

    第 1 条附言  ·  2022-06-06 23:21:31 +08:00

    经过再三的考虑,我决定还是用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-05-31 21:15:02 +08:00 via Android
    python 自带的 tkinter 框架如何
    ClericPy
        2
    ClericPy  
       2022-05-31 21:19:30 +08:00
    autohotkey 哈哈...

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

    Python 的怎么能不知道 pysimplegui
    acctv2
        3
    acctv2  
    OP
       2022-05-31 22:09:00 +08:00
    @cutepig 主要是觉得没有可视化界面要差一些。

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

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

    反正都跨平台的随便折腾
    buxudashi
        6
    buxudashi  
       2022-05-31 23:09:05 +08:00
    aardio
    eason1874
        7
    eason1874  
       2022-05-31 23:14:54 +08:00
    以前挺多 Python + Web 组合

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

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

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

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

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

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