Windows 下开发小应用 GUI,真的很难选方案

2024-01-04 17:52:37 +08:00
 feirisu
今天想做一个简单的小 exe ,需要调用不少原生 Windows API ,想要尺寸小一些,不要有依赖,最好单文件。
其次,UI 不想要 Win32 原生控件。

没想到在 2024 年的今天,这个看似简单的问题是如此难找到一个完美符合要求的。

1.c++ win32 原生,CreateWindow 后面要设 Font 、所有事件自己从处理循环里接。
2.c++ MFC ,想要 UI 好看,Pass 。
3.c#的 WPF ,是很方便,也有很多 UI 库,但是目前不能 AOT (正式版本),独立打包直接去到 100+M ,Pass 。
4.c#的 Form ,UI 不好看,打包也很大,可以 AOT 但是基本是空程序才行,稍微复杂点因为 AOT 隐式启用裁剪,复杂点的代码就会启动不了。
5.c#的 Avalonia ,UI 还行,和 Form 一样 AOT 后有可能启动不了,独立打包 60-80M 也有点大,独立的也还另外带 3 个 DLL ,最难受的是启动很慢,需要 2-3 秒左右的时间才出窗口。
6.QT ,不熟 Pass 。
7.MAUI(WINUI),都不想提。
8.electron ,一堆文件,太重了。
9.flutter ,需要很多原生代码,还是得自己写 c++,两头折腾,尺寸倒是比 c#的那几个小不少。
10.易语言,会,但真的不想用。

微软真的是不干人事,老老实实把 WPF 的 AOT 做好,不知道能造福多少客户端开发。

想来想去,不如控制台得了,除了没 GUI ,尺寸小、单文件、无依赖都可以做到。
25066 次点击
所在节点    程序员
123 条回复
loginv2
2024-01-06 03:52:26 +08:00
Lazarus
pollux
2024-01-10 08:34:35 +08:00
python + tkinter ,要美化用 ttkbootstrap 或者 customtkinter ,8~10M 左右不香吗?
ko1haha
2024-07-21 14:54:56 +08:00
Electron , 你甚至能用 vscode 的运行时启动你的页面,大家是不是没看过官网文档啊……

Electron 天生支持一个运行时启动不同 app 。 ( 就是开发时的启动模式

这是自带的!
这是自带的!
这是自带的!


普通 html:直接写个普通页面也能解决部分开发中的需求~

浏览器扩展:弥补浏览器功能,可以做很多功能出来。

---

传统:c++ duilib 但要自己会改库,基本上等同于原生开发。或者找个 direct2d 的库,做动画很炫酷。

QT: 比如 db browser sqlite 你可以试试,还不错。

IMGUI:字体是个问题,建议魔改成用 skia 绘制。

java swing / javafx:java 系自然有些爆款软件比如 idea ,jadx, xtream download 等等。
我也喜欢 java ,但不喜欢做 java 的 ui ,当脚本用好了。

WPF:复杂项目一定要用 rider ,架不住 IDE nb !


---

甚至纯脚本语言也可以做界面:我还真见过有人用 python 做 anki ,用 ahk 做查词软件的
,还有那个 aardio 不是热门过,也有些小工具,不过底层不开源
, python ui 库也不少了
,硬核……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1005903

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX