![]() | 1 tave 2024-01-04 17:55:50 +08:00 winform+webview2 挺符合你的需求吧,只需要一个 webview2 控件,ui 前端轮子足够用成本也低,逻辑全靠 C#,打包还不会像 cef 多一个浏览器内核,体积有保证 |
2 0o0O0o0O0o 2024-01-04 17:56:49 +08:00 |
![]() | 4 feirisu OP @tave 前端不熟,另外 webview2 必须装 edge ,如果自用还行,发出去给人用不一定有 edge ( win7 )。 |
5 Binwalker 2024-01-04 17:58:08 +08:00 ![]() tauri 吧,体积小 |
![]() | 6 StubbornHuang 2024-01-04 17:58:20 +08:00 duilib+cef |
![]() | 7 xmoer 2024-01-04 17:59:25 +08:00 ![]() 哈哈哈,楼主总结的很到位,微软真的是不干人事 |
8 Mithril 2024-01-04 17:59:32 +08:00 MFC 创建的时候就可以选新的 office 风格了吧? 实在不行你可以 webview2 ,相比 Electron 能省点地方。 |
![]() | 9 shuax 2024-01-04 18:00:42 +08:00 ![]() duilib |
![]() | 10 cocang 2024-01-04 18:01:43 +08:00 楼上说的 webview2 就挺好,覆盖率已经很可观了,也符合你“尺寸小一些,不要有依赖,最好单文件”的要求 |
![]() | 11 fields 2024-01-04 18:03:11 +08:00 electron 吧 文件多久多呗 好在快速开发、没啥学习成本都 |
12 0o0O0o0O0o 2024-01-04 18:04:18 +08:00 ![]() > 微软真的是不干人事,...,不知道能造福多少客户端开发 我觉得微软就算愿意造福客户端开发也不会造福 2024 年想支持 Win7 的客户端开发吧 |
![]() | 14 feirisu OP @0o0O0o0O0o 是的啊,新的 MAUI 就不支持 Win7 ,github 上也有人在喷,另外这玩意 AOT 也不怎么好用。 |
![]() | 15 morgan1freeman 2024-01-04 18:08:20 +08:00 不跨平台 纠结这么多干嘛 直接.net wpf 一把梭, |
![]() | 16 feirisu OP @fields 太重了太重了,你想想写个启动器,加个远线程注入带点 http 请求,UI 就俩 TextBox 几个 Label 和按钮,这太重了。 |
![]() | 17 feirisu OP @morgan1freeman 编出去太大啊,太大了啊,独立包 100M 了 |
18 Hellert 2024-01-04 18:11:47 +08:00 ![]() Windows GUI 最强的还是 Delphi ,可惜不是免费的。 可以看一下 Lazarus 。 |
![]() | 19 churchill 2024-01-04 18:13:55 +08:00 "小应用 GUI 想要尺寸小一些,不要有依赖,最好单文件" 难道说的不是 ImGui ? |
![]() | 20 morgan1freeman 2024-01-04 18:14:33 +08:00 另外微软家的东西 ,业内都是嗤之以鼻的,基本上没几个能善终,好多都烂尾了 一般技术选型,狗都不用微软家的技术 silverlight RIP |
21 KgM4gLtF0shViDH3 2024-01-04 18:15:11 +08:00 aardio ? |
![]() | 22 Foxkeh 2024-01-04 18:16:50 +08:00 aardio |
![]() | 23 ShadowPower 2024-01-04 18:18:01 +08:00 如果会 Pascal 语言,也许可以试试 lazarus 对于小工具够用了 |
![]() | 24 morgan1freeman 2024-01-04 18:19:11 +08:00 @Hellert delphi 还没死么,我 07 年上初中的时候,还用 delphi 写过 u 盘,inf 病毒的 查杀工具,当时很多老师的 u 盘插到教室的电脑 然后被病毒 g 了,我就弄了个 upan 查杀工具,当时还有 exe 伪装成 excel 图片,让人误点的,我帮教室里面的电脑 安装好几次的系统 |
25 limiter 2024-01-04 18:19:31 +08:00 怎么没看到 javafx |
![]() | 26 morgan1freeman 2024-01-04 18:24:17 +08:00 https://www.2ccc.com/ 这个网站 居然还没倒闭,牛逼 |
![]() | 27 IsaacYoung 2024-01-04 18:25:22 +08:00 via iPhone react-windows |
![]() | 28 Rorysky 2024-01-04 18:26:17 +08:00 选人多的 qt electron flutter |
30 WayneXxx PRO golang + govcl ,轻量无依赖,打包完压缩后就几 M ,不依赖 Runtime, 开发简单的页面完全够了 |
![]() | 31 yolee599 2024-01-04 18:32:37 +08:00 我提一个: lvgl |
![]() | 32 ysc3839 2024-01-04 18:39:44 +08:00 via Android C++ + Xaml Island ,相关依赖库都在系统中,可以做到小体积,不过至少需要 Win10 1809 才能用。 |
![]() | 33 ysc3839 2024-01-04 18:40:51 +08:00 via Android @ysc3839 不过要弄成单文件的话得进行一些 hack ,可以参考 https://github.com/ysc3839/SingleExeXamlIsland |
![]() | 34 ShadowPower 2024-01-04 18:41:57 +08:00 我刚想到一个另类一些的: Godot 这玩意真的可以用来写软件,有一些例子: https://github.com/Orama-Interactive/Pixelorama https://github.com/RodZill4/material-maker https://github.com/MewPurPur/GodSVG https://github.com/mbrlabs/Lorien 用 GDScript 写逻辑,开发效率也相当高。 另外看了帖子回复,我觉得有个需要注意的坑: 大多数用 GPU 绘图的 GUI 库,往往字体渲染都有很多坑。 ImGUI 就有坑,比如不能渲染阿拉伯语…… |
![]() | 35 shijingshijing 2024-01-04 18:46:28 +08:00 既要又要还要更要,本来最符合的 Qt 被你直接 Pass 了 |
![]() | 36 ktqFDx9m2Bvfq3y4 2024-01-04 18:50:26 +08:00 via iPhone ![]() 你不跨平台追求独立打包有什么意义吗。 |
![]() | 37 calvinHxx 2024-01-04 18:51:16 +08:00 qt 可以解决你所有的问题 可惜你不熟 |
![]() | 38 ysc3839 2024-01-04 18:52:29 +08:00 via Android @shijingshijing Qt 的体积也比较大。 其实要体积小的话,要不然就只能界面难看,要不然操作系统有自带依赖。那可选项就只有传统 Win32 控件、Xaml Island 、Edge WebView2 、.NET Framework 。传统 Win32 控件太难看。.NET WPF 自带的主题也不太好看,用第三方主题又会增加体积,不过看增加的大小,也许可以接受。WebView2 要好看也得用第三方 css 库,不过一般都能做得很小。所以最符合的基本就只有 Xaml Island 了。 |
![]() | 39 KagurazakaNyaa 2024-01-04 18:57:43 +08:00 试试 egui 或者 slint |
![]() | 40 R4rvZ6agNVWr56V0 2024-01-04 19:04:29 +08:00 界面如果不是很复杂,QT 学习起来该是比较舒适的 |
41 maybedk 2024-01-04 19:05:15 +08:00 qt 不方便的话可以试试 pyqt,用 pyinstaller 打包完可以不超过 50M,或者用 python 内置的 tkinter 会更小 |
![]() | 42 adoal 2024-01-04 19:07:01 +08:00 因为早在很多年前厂家们就没动力卷桌面 GUI 赛道了,更不要说 native GUI |
![]() | 43 pengtdyd 2024-01-04 19:28:36 +08:00 ![]() 何为重?何为轻?不要陷入到技术选型的漩涡当中,把业务做好才是正途。 |
44 W3Cbox 2024-01-04 19:33:10 +08:00 AARDIO |
45 W3Cbox 2024-01-04 19:40:35 +08:00 @feirisu 唯一能满足你的只有 aardio , 优点如下: 1.简单易学,有 Python 、php 、或者 Javascript 之类的脚本语言经验的人,稍微看一下文档。初学者很容易就能学会 2.支持 ui 自绘,可使用 html+css 定制非常美观的界面 3.打包极小,一般的桌面小软件 3-5m 。且启动快 4.示例代码丰富,文档完善,大部分模块代码已经封装好了,直接复制就能用,几行代码随随便便就能拼装出功能强大的软件 |
46 Gosolin 2024-01-04 19:44:19 +08:00 不追求新特性以把 WPF/WinForm 的 TargetFramework 改成 .NET Framework 比如 net461 ,用系统自带的运行时也约等于无依赖了 |
47 henix 2024-01-04 19:51:31 +08:00 传统 GUI 库除了 QT 还有很多啊,GTK+、wxWidgets 之类的,还有 https://www.fltk.org/ 如果不限语言的话,还有 https://www.tecgraf.puc-rio.br/iup/ 和 Tcl/Tk |
48 yulon 2024-01-04 19:52:14 +08:00 需要纠结这种问题就无脑选 Electron ,因为你不可能比 Electron 做得好,如果你能比 Electron 做得好,那也就不会问这个问题了。 |
![]() | 49 rb6221 2024-01-04 19:53:10 +08:00 ![]() 你这个要求也挺多了吧。。。要美观,要大小,要便携性,要性能,要开发速度,说说吧是什么你可以放弃的? 什么?你都不想放弃?那还说你要求不高? |
![]() | 50 ibinary 2024-01-04 19:54:49 +08:00 duilib 或者 cefview. |
![]() | 51 cookgo 2024-01-04 19:55:41 +08:00 wails |
![]() | 52 keepwalk2020 2024-01-04 19:56:19 +08:00 python + tkinter + win32API 然后用 pyinstaller 打包, 需要加密的话用+ cython python + tkinter 写的应用优化打包后可以小于 10Mb python + ctypes 调用 win32 DLL ,打包后小于 3Mb 不要用用 python + qt 这有一个用 python + ctypes 写的多窗口文件管理器,仅供参考: t/911130#reply9 |
53 huyangq 2024-01-04 20:00:45 +08:00 javafx 嘻嘻 |
54 Peek 2024-01-04 20:01:23 +08:00 webview2 吧,好像只要运行时就行了,不一定非要 edge 吧?我业余写着玩感觉这个是目前最好的选择了,会易的话,火山 pc 就有这个库 |
![]() | 55 keepwalk2020 2024-01-04 20:20:05 +08:00 ![]() 如果选 python + tkinter 的话,有图形化 UI 生成工具, https://visualtk.com/ https://github.com/alejandroautalan/pygubu-designer 设计好 UI ,直接生成相关代码 如果只在 win 平台用,打包时候+upx 压缩,体积更小 : https://github.com/upx/upx/releases/tag/v4.2.2 如果没有调用很大很复杂的库,python + tkinter + win32 API + pyinstaller + upx 写的 GUI 应用可以 < 10Mb, 手动优化( trim 库)可以 < 5Mb 同样的代码,所使用的 python 版本不同会导致不同的打包大小 py2.7 < py3.5 < py3.12 |
![]() | 56 minami 2024-01-04 20:33:29 +08:00 你这个要求有点过多了,但确实有一个满足你所有要求的,就是 https://github.com/yue/yue/blob/master/docs/guides/faq.md 可以静态链接,可以调用原生 Windows API ,完全自绘。如果你能接受原生控件的话,IUP 也是个好选择 |
57 0o0O0o0O0o 2024-01-04 20:36:14 +08:00 via iPhone ![]() |
![]() | 58 huiyadanli 2024-01-04 20:37:04 +08:00 .net framework 为什么要独立打包,系统不都自带吗 |
![]() | 59 tool2d 2024-01-04 20:49:40 +08:00 |
![]() | 60 jiangzm 2024-01-04 20:58:02 +08:00 前端不熟还挑啥这个 UI 不好那个 UI 不好看,不管是 Web 前端还是桌面前端都是要开发自己有排版设计能力。 懒鬼就直接找人家现成有 UI 的项目改改好了。 |
61 James369 2024-01-04 21:14:22 +08:00 这么纠结,不如雇佣一个人来做,你不做有的是人做。不过看你应该是有洁癖 |
![]() | 62 blinue 2024-01-04 21:24:47 +08:00 ![]() 你的需求基本只能 C++ 实现。我在自己的开源项目里用的 C++/WinRT+XAML Islands+WinUI 2 ,效果挺好。优点是界面美观,没有外部依赖( HybridCRT 技术),纯框架体积不到 10M 。但单文件是做不到的,最少 4 个文件。 |
63 qazwsxkevin 2024-01-04 22:03:52 +08:00 记得 MFC 在做窗体布局的时候,可以自己做(画?)控件的,(控件类的逻辑,继承后完全重写都能做到?? 好像自由度还是很大的,不记得太清晰了), 记得当时自画 mfc 控件的图和色,只能用 16 位的图(当时是 XP+VC2005),我自己在 XP +VC2003 上用 MFC 写的背单词软件,后来用在 vista 上,那窗体和按钮,非常素。。。。 MFC 编译后的 release 版,就算很几万行很复杂的逻辑,单文件内嵌静态编译,文件最多 3,4,5M 体积,甚是怀念。 可我毕业后就没干专职开发了,呵呵呵 MFC 是好东西。 微软就是狗。 |
64 felixlong 2024-01-04 22:14:47 +08:00 WinUI3 不是最好的选择嘛?要 size 最小直接选 C++/WinRT. 印象里不会超过 1M 。 |
65 acctv2 2024-01-04 22:15:28 +08:00 WPF 就算最终实现了 AOT ,体积仍然会很大,这跟 AOT 本身没关系。 你又要 GUI 好看,又要占用小,那只能从底层控件开始自己手撸,结果你又不愿意撸,又想简便。你这个需求在哪个平台能完美实现? |
![]() | 66 aiqinxuancai 2024-01-04 22:28:21 +08:00 @acctv2 如果 WPF 能 AOT 的话,参考 Form 目前已知的 AOT ,估计应该能在 20-30M ,然后上 UPX 壳,应该能在 10M 左右,还是很可观的。 |
![]() | 我也是想骂,wpf 搞 aot 多好,最近开始研究 avalonia 了 |
![]() | 68 ysc3839 2024-01-04 22:32:24 +08:00 via Android ![]() @blinue 可以实现单文件。 不使用 WinUI 的情况下,用代码创建界面元素,就不需要 resources.pri 。 要 resources.pri 的情况下,可以 hook 加载 resources.pri 的 DLL(印象中是 twinui.appcore.dll),让其加载内存中的数据。不过 hook 属于非正常手段,升级系统后可能出现问题,风险自担。方法参见 https://github.com/ysc3839/SingleExeXamlIsland 要 WinUI 2 的情况下,如果是 Win11 ,可以用 AddPackageDependency 引入系统中已安装的 WinUI 2 AppX 包,甚至可以引入系统内置的 WinUI 2 包 ("Microsoft.UI.Xaml.CBS_8wekyb3d8bbwe"),不过当然也是风险自担。 要 WinUI 2 的情况下,如果是 Win10 ,我之前调查过,似乎是只能把 WinUI 2 的 DLL 和 resources.pri 放到 exe 目录下,除非是打包成 AppX 并添加 WinUI 2 AppX 包的依赖,否则只能自己附带 WinUI 2 。不过可以考虑 Win10 下不用 WinUI 2 ,Win11 下才用。 上述“用代码创建界面元素”有个衍生方案,那就是用 React Native for Windows ,因为 React Native 就是纯代码创建元素的。之前测试没记错的话 React Native for Windows 的 DLL 只有 2MB 。原版 React Native for Windows 是独立的 DLL ,同时需要从文件加载数据,不过因为是开源的,可以改成静态链接以及从内存加载数据,就可以单文件了。 |
![]() | 69 ysc3839 2024-01-04 22:34:03 +08:00 via Android @felixlong WinUI 3 不一定是最好的,目前最新的 Win11 似乎都没有内置 WinUI 3 ,就算通过 AppX 安装 WinUI 3 ,也少不了安装那一步。 |
70 MrLia0 2024-01-04 22:34:33 +08:00 pyqt pyside 应该满足你的条件,有个 fluentui 还不错 |
71 linuxgo 2024-01-04 22:54:58 +08:00 |
72 kenvix 2024-01-04 23:03:07 +08:00 不追求 AOT 的话你的选项会多很多 |
![]() | 73 minami 2024-01-04 23:08:03 +08:00 @0o0O0o0O0o #56 考虑到作者是国人,很难说有没有故意的成分,哈哈 |
74 mumbler 2024-01-04 23:26:10 +08:00 需要调用不少原生 Windows API ,想要尺寸小一些,不要有依赖,最好单文件 同时满足这个需求,除了 delphi 没有第二家,只要你不申请软著,不会被国内代理盯上 |
75 asm 2024-01-04 23:34:50 +08:00 linux 没这个需求,因为大部分程序不需要 GUI[手动狗头]. 想好看还想文件小,这个貌似只有 mfc 、wtl 。哦对,忘了 delphi 了,微信和 foxmail 的巅峰之作。 |
![]() | 76 Ritr 2024-01-04 23:41:32 +08:00 winform 还好吧,简单粗暴体积小 |
![]() | 77 yixiang 2024-01-04 23:57:17 +08:00 没人提 sciter ? 6M 大小,html + js + css 开发 ui ,有接口可以和原生语言交互,如 c ,rust 等。甚至支持 XP 。 主要的坑在于 css 和 api 是自己的一套东西,和标准不一样。几年前 js 也是自己的,后来 quickjs 出来后换 quickjs 了,开发体验提升很多。 拿来开发过几个小工具,开发体验比较差,但引擎本身挺强的。 |
![]() | 78 ggvoking 2024-01-05 01:01:02 +08:00 via iPhone ![]() .net Aot 被裁剪运行不起来,配个 rd.xml 加上类型就行了,很简单。 |
![]() | 79 memorycancel 2024-01-05 02:05:47 +08:00 奔驰 特斯拉 等很多车机上的 ui 用的 qt |
![]() | 80 rm0gang0rf 2024-01-05 08:13:43 +08:00 go+web |
![]() | 81 Promtheus 2024-01-05 08:45:20 +08:00 IMGUI |
82 ltmst 2024-01-05 09:01:17 +08:00 ![]() |
![]() | 83 creanme 2024-01-05 09:03:21 +08:00 slint ?可以了解一下,可以使用 c++, js, rust 开发 |
84 anytk 2024-01-05 09:10:07 +08:00 |
![]() | 85 opiviqo 2024-01-05 09:13:17 +08:00 pyside pyqt |
86 duke000 2024-01-05 09:18:18 +08:00 wxwidgets |
87 leyoumake1997 2024-01-05 09:20:27 +08:00 试试[wails]( https://github.com/wailsapp/wails),程序嵌套了个 webview ,ui 界面套一些开源组件库绝对杠杠的,在配合 go 写一些简单的后端业务逻辑,打包出去最小的可执行文件也只有 10MB 左右。 |
![]() | 88 xieren58 2024-01-05 09:29:58 +08:00 Avalonia 挺好用... 我做了几个小项目了... |
89 nbboy 2024-01-05 09:30:33 +08:00 ![]() 你熟悉哪个就用哪个,不要纠结这种东西,有时间纠结还不如花点时间在业务上。 |
![]() | 90 june4 2024-01-05 09:33:15 +08:00 我以前直接在本地起个端口做成 web 服务 用默认浏览器,系统里浏览器总是有的 |
91 wodeguaiguai 2024-01-05 09:41:15 +08:00 miniblink |
![]() | 92 hankli 2024-01-05 09:45:29 +08:00 易语言: 我真的很伤心 |
93 FrankAdler 2024-01-05 09:46:33 +08:00 via Android 前几天自学 winforms 做了个应用启动器,感觉简单好用,好不好看就无所谓了 |
94 0TSH60F7J2rVkg8t 2024-01-05 09:48:47 +08:00 @Hellert 好像 Delphi 现在的公司 Embarcadero 推出了社区版,是可以免费使用的: https://www.embarcadero.com/products/delphi/starter/free-download |
95 frank1357 2024-01-05 10:02:23 +08:00 wails + 1 主程序 golang , 界面支持各前端技术栈; golang 原生跨平台,前端技术界面便捷/丰富程度也非其他可比; |
96 tgcdz 2024-01-05 10:28:52 +08:00 如果喜欢用 H5 做界面,可以试试这个 https://webui.me/ 。用本地浏览器作为 UI 界面,业务逻辑可以用 C/C++/Go 等开发 |
![]() | 97 b4115Z4mRAz9P8EA 2024-01-05 11:05:39 +08:00 @Foxkeh 纯微软平台的,似乎 aardio 真不错 |
99 PrinceofInj 2024-01-05 12:23:52 +08:00 @ysc3839 #69 不知道微软怎么想的。明明自己的系统组件都有用 winui3 写的了,然而我自己写一个小的程序,在系统上执行却需要额外再安装一下运行库,而不能用系统自带的。 |
100 Henrylee8619 2024-01-05 12:26:05 +08:00 via iPhone 刚看到标题就想起易语言,没想到楼主真是考虑了哈哈 |