V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
feirisu
V2EX  ›  程序员

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

  •  3
     
  •   feirisu · 2024-01-04 17:52:37 +08:00 · 20134 次点击
    这是一个创建于 379 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天想做一个简单的小 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 ,尺寸小、单文件、无依赖都可以做到。
    第 1 条附言  ·  2024-01-05 10:34:11 +08:00
    感谢大家的回复,思维开阔了很多,我确实有一点喜欢追求完美,但我相信很多喜欢编码的人都是这样。在写代码时,总会想到这代码能不能更简洁直观,编译出去的东西能否运行更快、体积更小、更漂亮。

    我是一个老 windows 开发了,写过的东西估计你们可能都用过,比如 10 年前最火的游戏都在用的某个 box ,我觉得我是喜欢写代码的。

    看到收藏数我就放心了,看来很多人可能有同样的疑惑。

    我为客户端开发感到遗憾,在 windows 的 GUI 开发上,这么多年微软的似乎都是停滞的,我们追求的体积小而美、快速、兼容性、加壳反破解等等,在微软看来似乎都是不值一提的,WPF 的 AOT 相关的提交,在几年前就有人提交代码上去了,直到上个月才被合进 main 分支,在微软看来,我们就是一群不肯进微软 Store 的小丑吧。

    可能终究还是要走向跨平台的目标,但是这个目标微软实现不了。

    最后,我觉得还是业务为先吧,适当放弃一些东西也不失为一种选择,还是先 Avalonia 了,再次感谢各位的建议!
    第 2 条附言  ·  2024-01-05 13:41:18 +08:00
    使用了 avalonia 的 AOT ,将裁剪修改为如下,可以 AOT 后正常运行了

    <TrimMode>partial</TrimMode>
    <TrimmerSingleWarn>false</TrimmerSingleWarn>

    然后根据 https://github.com/AvaloniaUI/Avalonia/issues/9503 的方法,将附带的三个 dll 用 lib 静态链接的方式引入

    <ItemGroup>
    <DirectPInvoke Include="libHarfBuzzSharp" />
    <NativeLibrary Include="native\libHarfBuzzSharp.lib" Condition="$(RuntimeIdentifier.StartsWith('win'))" />
    <DirectPInvoke Include="libSkiaSharp" />
    <NativeLibrary Include="native\libSkiaSharp.lib" Condition="$(RuntimeIdentifier.StartsWith('win'))" />
    <DirectPInvoke Include="av_libglesv2" />
    <NativeLibrary Include="native\av_libglesv2.lib" Condition="$(RuntimeIdentifier.StartsWith('win'))" />
    </ItemGroup>

    实现了完美的单文件 AOT ,文件编译后尺寸为 68M ,加 UPX 壳以后为 23M ,已基本符合了我的预期,启动速度也有了大幅的提升。
    第 3 条附言  ·  269 天前
    哈哈!干!最后用基于.Net Framework 4.6.2 的 WPF 重写了,反正用户不多,基本也都是新版 win10 ,默认都是自带了这个版本的.Net Framework 的。

    说起来也挺搞笑的,为了 AOT ,最后不要 AOT 。
    123 条回复    2024-07-21 14:54:56 +08:00
    1  2  
    tave
        1
    tave  
       2024-01-04 17:55:50 +08:00
    winform+webview2 挺符合你的需求吧,只需要一个 webview2 控件,ui 前端轮子足够用成本也低,逻辑全靠 C#,打包还不会像 cef 多一个浏览器内核,体积有保证
    explon
        3
    explon  
       2024-01-04 17:57:20 +08:00
    试试 abp.io
    feirisu
        4
    feirisu  
    OP
       2024-01-04 17:58:06 +08:00
    @tave 前端不熟,另外 webview2 必须装 edge ,如果自用还行,发出去给人用不一定有 edge ( win7 )。
    Binwalker
        5
    Binwalker  
       2024-01-04 17:58:08 +08:00   ❤️ 1
    tauri 吧,体积小
    StubbornHuang
        6
    StubbornHuang  
       2024-01-04 17:58:20 +08:00
    duilib+cef
    xmoer
        7
    xmoer  
       2024-01-04 17:59:25 +08:00   ❤️ 5
    哈哈哈,楼主总结的很到位,微软真的是不干人事 😂
    Mithril
        8
    Mithril  
       2024-01-04 17:59:32 +08:00
    MFC 创建的时候就可以选新的 office 风格了吧?

    实在不行你可以 webview2 ,相比 Electron 能省点地方。
    shuax
        9
    shuax  
       2024-01-04 18:00:42 +08:00   ❤️ 2
    duilib
    cocang
        10
    cocang  
       2024-01-04 18:01:43 +08:00
    楼上说的 webview2 就挺好,覆盖率已经很可观了,也符合你“尺寸小一些,不要有依赖,最好单文件”的要求
    fields
        11
    fields  
       2024-01-04 18:03:11 +08:00
    electron 吧 文件多久多呗 好在快速开发、没啥学习成本都
    0o0O0o0O0o
        12
    0o0O0o0O0o  
       2024-01-04 18:04:18 +08:00   ❤️ 2
    > 微软真的是不干人事,...,不知道能造福多少客户端开发

    我觉得微软就算愿意造福客户端开发也不会造福 2024 年想支持 Win7 的客户端开发吧
    feirisu
        13
    feirisu  
    OP
       2024-01-04 18:05:06 +08:00
    @shuax duilib 确实有可行性,除了没 c#的开发效率以外。
    feirisu
        14
    feirisu  
    OP
       2024-01-04 18:07:51 +08:00
    @0o0O0o0O0o 是的啊,新的 MAUI 就不支持 Win7 ,github 上也有人在喷,另外这玩意 AOT 也不怎么好用。
    morgan1freeman
        15
    morgan1freeman  
       2024-01-04 18:08:20 +08:00
    不跨平台 纠结这么多干嘛 直接.net wpf 一把梭,
    feirisu
        16
    feirisu  
    OP
       2024-01-04 18:09:38 +08:00
    @fields 太重了太重了,你想想写个启动器,加个远线程注入带点 http 请求,UI 就俩 TextBox 几个 Label 和按钮,这太重了。
    feirisu
        17
    feirisu  
    OP
       2024-01-04 18:10:14 +08:00
    @morgan1freeman 编出去太大啊,太大了啊,独立包 100M 了
    Hellert
        18
    Hellert  
       2024-01-04 18:11:47 +08:00   ❤️ 3
    Windows GUI 最强的还是 Delphi ,可惜不是免费的。
    可以看一下 Lazarus 。
    churchill
        19
    churchill  
       2024-01-04 18:13:55 +08:00
    "小应用 GUI 想要尺寸小一些,不要有依赖,最好单文件"
    难道说的不是 ImGui ?
    morgan1freeman
        20
    morgan1freeman  
       2024-01-04 18:14:33 +08:00
    另外微软家的东西 ,业内都是嗤之以鼻的,基本上没几个能善终,好多都烂尾了

    一般技术选型,狗都不用微软家的技术

    silverlight RIP
    KgM4gLtF0shViDH3
        21
    KgM4gLtF0shViDH3  
       2024-01-04 18:15:11 +08:00
    aardio ?
    Foxkeh
        22
    Foxkeh  
       2024-01-04 18:16:50 +08:00
    aardio
    ShadowPower
        23
    ShadowPower  
       2024-01-04 18:18:01 +08:00
    如果会 Pascal 语言,也许可以试试 lazarus
    对于小工具够用了
    morgan1freeman
        24
    morgan1freeman  
       2024-01-04 18:19:11 +08:00
    @Hellert delphi 还没死么,我 07 年上初中的时候,还用 delphi 写过 u 盘,inf 病毒的 查杀工具,当时很多老师的 u 盘插到教室的电脑 然后被病毒 g 了,我就弄了个 upan 查杀工具,当时还有 exe 伪装成 excel 图片,让人误点的,我帮教室里面的电脑 安装好几次的系统
    limiter
        25
    limiter  
       2024-01-04 18:19:31 +08:00
    怎么没看到 javafx
    morgan1freeman
        26
    morgan1freeman  
       2024-01-04 18:24:17 +08:00
    https://www.2ccc.com/ 这个网站 居然还没倒闭,牛逼
    IsaacYoung
        27
    IsaacYoung  
       2024-01-04 18:25:22 +08:00 via iPhone
    react-windows
    Rorysky
        28
    Rorysky  
       2024-01-04 18:26:17 +08:00
    选人多的

    qt
    electron
    flutter
    feirisu
        29
    feirisu  
    OP
       2024-01-04 18:28:53 +08:00
    @churchill ImGui 看起来不错,有待研究一下!
    xiwh
        30
    xiwh  
       2024-01-04 18:30:11 +08:00
    golang + govcl ,轻量无依赖,打包完压缩后就几 M ,不依赖 Runtime, 开发简单的页面完全够了
    yolee599
        31
    yolee599  
       2024-01-04 18:32:37 +08:00
    我提一个:
    lvgl
    ysc3839
        32
    ysc3839  
       2024-01-04 18:39:44 +08:00 via Android
    C++ + Xaml Island ,相关依赖库都在系统中,可以做到小体积,不过至少需要 Win10 1809 才能用。
    ysc3839
        33
    ysc3839  
       2024-01-04 18:40:51 +08:00 via Android
    @ysc3839 不过要弄成单文件的话得进行一些 hack ,可以参考 https://github.com/ysc3839/SingleExeXamlIsland
    ShadowPower
        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 就有坑,比如不能渲染阿拉伯语……
    shijingshijing
        35
    shijingshijing  
       2024-01-04 18:46:28 +08:00
    既要又要还要更要,本来最符合的 Qt 被你直接 Pass 了
    Chad0000
        36
    Chad0000  
       2024-01-04 18:50:26 +08:00 via iPhone   ❤️ 1
    你不跨平台追求独立打包有什么意义吗。
    calvinHxx
        37
    calvinHxx  
       2024-01-04 18:51:16 +08:00
    qt 可以解决你所有的问题 可惜你不熟
    ysc3839
        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 了。
    XiLingHost
        39
    XiLingHost  
       2024-01-04 18:57:43 +08:00
    试试 egui 或者 slint
    GeekGao
        40
    GeekGao  
       2024-01-04 19:04:29 +08:00
    界面如果不是很复杂,QT 学习起来该是比较舒适的
    maybedk
        41
    maybedk  
       2024-01-04 19:05:15 +08:00
    qt 不方便的话可以试试 pyqt,用 pyinstaller 打包完可以不超过 50M,或者用 python 内置的 tkinter 会更小
    adoal
        42
    adoal  
       2024-01-04 19:07:01 +08:00
    因为早在很多年前厂家们就没动力卷桌面 GUI 赛道了,更不要说 native GUI
    pengtdyd
        43
    pengtdyd  
       2024-01-04 19:28:36 +08:00   ❤️ 5
    何为重?何为轻?不要陷入到技术选型的漩涡当中,把业务做好才是正途。
    W3Cbox
        44
    W3Cbox  
       2024-01-04 19:33:10 +08:00
    AARDIO
    W3Cbox
        45
    W3Cbox  
       2024-01-04 19:40:35 +08:00
    @feirisu 唯一能满足你的只有 aardio ,
    优点如下:
    1.简单易学,有 Python 、php 、或者 JavaScript 之类的脚本语言经验的人,稍微看一下文档。初学者很容易就能学会
    2.支持 ui 自绘,可使用 html+css 定制非常美观的界面
    3.打包极小,一般的桌面小软件 3-5m 。且启动快
    4.示例代码丰富,文档完善,大部分模块代码已经封装好了,直接复制就能用,几行代码随随便便就能拼装出功能强大的软件
    Gosolin
        46
    Gosolin  
       2024-01-04 19:44:19 +08:00
    不追求新特性可以把 WPF/WinForm 的 TargetFramework 改成 .NET Framework 比如 net461 ,用系统自带的运行时也约等于无依赖了
    henix
        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
    yulon
        48
    yulon  
       2024-01-04 19:52:14 +08:00
    需要纠结这种问题就无脑选 Electron ,因为你不可能比 Electron 做得好,如果你能比 Electron 做得好,那也就不会问这个问题了。
    janus77
        49
    janus77  
       2024-01-04 19:53:10 +08:00   ❤️ 4
    你这个要求也挺多了吧。。。要美观,要大小,要便携性,要性能,要开发速度,说说吧是什么你可以放弃的?
    什么?你都不想放弃?那还说你要求不高?
    ibinary
        50
    ibinary  
       2024-01-04 19:54:49 +08:00
    duilib 或者 cefview.
    cookgo
        51
    cookgo  
       2024-01-04 19:55:41 +08:00
    wails
    keepwalk2020
        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 写的多窗口文件管理器,仅供参考:
    https://www.v2ex.com/t/911130#reply9
    huyangq
        53
    huyangq  
       2024-01-04 20:00:45 +08:00
    javafx 嘻嘻
    Peek
        54
    Peek  
       2024-01-04 20:01:23 +08:00
    webview2 吧,好像只要运行时就行了,不一定非要 edge 吧?我业余写着玩感觉这个是目前最好的选择了,会易的话,火山 pc 就有这个库
    keepwalk2020
        55
    keepwalk2020  
       2024-01-04 20:20:05 +08:00   ❤️ 1
    如果选 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
    minami
        56
    minami  
       2024-01-04 20:33:29 +08:00
    你这个要求有点过多了,但确实有一个满足你所有要求的,就是 https://github.com/yue/yue/blob/master/docs/guides/faq.md 可以静态链接,可以调用原生 Windows API ,完全自绘。如果你能接受原生控件的话,IUP 也是个好选择
    0o0O0o0O0o
        57
    0o0O0o0O0o  
       2024-01-04 20:36:14 +08:00 via iPhone   ❤️ 1
    @minami #56

    > It means moon in Chinese

    该死的网络文化,我第一眼想到这项目名字有点像吐了
    huiyadanli
        58
    huiyadanli  
       2024-01-04 20:37:04 +08:00
    .net framework 为什么要独立打包,系统不都自带吗
    tool2d
        59
    tool2d  
       2024-01-04 20:49:40 +08:00
    @janus77 github 上 windows GUI 轮子巨多,随便找一些来用用,效果都还行。

    不过好界面,最后还是要靠美术。
    jiangzm
        60
    jiangzm  
       2024-01-04 20:58:02 +08:00
    前端不熟还挑啥这个 UI 不好那个 UI 不好看,不管是 Web 前端还是桌面前端都是要开发自己有排版设计能力。

    懒鬼就直接找人家现成有 UI 的项目改改好了。
    James369
        61
    James369  
       2024-01-04 21:14:22 +08:00
    这么纠结,不如雇佣一个人来做,你不做有的是人做。不过看你应该是有洁癖
    blinue
        62
    blinue  
       2024-01-04 21:24:47 +08:00   ❤️ 1
    你的需求基本只能 C++ 实现。我在自己的开源项目里用的 C++/WinRT+XAML Islands+WinUI 2 ,效果挺好。优点是界面美观,没有外部依赖( HybridCRT 技术),纯框架体积不到 10M 。但单文件是做不到的,最少 4 个文件。
    qazwsxkevin
        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 是好东西。
    微软就是狗。
    felixlong
        64
    felixlong  
       2024-01-04 22:14:47 +08:00
    WinUI3 不是最好的选择嘛?要 size 最小直接选 C++/WinRT. 印象里不会超过 1M 。
    acctv2
        65
    acctv2  
       2024-01-04 22:15:28 +08:00
    WPF 就算最终实现了 AOT ,体积仍然会很大,这跟 AOT 本身没关系。

    你又要 GUI 好看,又要占用小,那只能从底层控件开始自己手撸,结果你又不愿意撸,又想简便。你这个需求在哪个平台能完美实现?
    aiqinxuancai
        66
    aiqinxuancai  
       2024-01-04 22:28:21 +08:00
    @acctv2 如果 WPF 能 AOT 的话,参考 Form 目前已知的 AOT ,估计应该能在 20-30M ,然后上 UPX 壳,应该能在 10M 左右,还是很可观的。
    zggsong
        67
    zggsong  
       2024-01-04 22:31:00 +08:00
    我也是想骂,wpf 搞 aot 多好,最近开始研究 avalonia 了
    ysc3839
        68
    ysc3839  
       2024-01-04 22:32:24 +08:00 via Android   ❤️ 1
    @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 ,同时需要从文件加载数据,不过因为是开源的,可以改成静态链接以及从内存加载数据,就可以单文件了。
    ysc3839
        69
    ysc3839  
       2024-01-04 22:34:03 +08:00 via Android
    @felixlong WinUI 3 不一定是最好的,目前最新的 Win11 似乎都没有内置 WinUI 3 ,就算通过 AppX 安装 WinUI 3 ,也少不了安装那一步。
    MrLia0
        70
    MrLia0  
       2024-01-04 22:34:33 +08:00
    pyqt pyside 应该满足你的条件,有个 fluentui 还不错
    linuxgo
        71
    linuxgo  
       2024-01-04 22:54:58 +08:00
    @Hellert #18 我以前也用过 delphi 写过小工具,做 gui 超级简单,编译飞快,编译出来的程序也很小,主要问题就是不同版本的库不兼容。现在好像都没什么人用了。

    kenvix
        72
    kenvix  
       2024-01-04 23:03:07 +08:00
    不追求 AOT 的话你的选项会多很多
    minami
        73
    minami  
       2024-01-04 23:08:03 +08:00
    @0o0O0o0O0o #56 考虑到作者是国人,很难说有没有故意的成分,哈哈
    mumbler
        74
    mumbler  
       2024-01-04 23:26:10 +08:00
    需要调用不少原生 Windows API ,想要尺寸小一些,不要有依赖,最好单文件

    同时满足这个需求,除了 delphi 没有第二家,只要你不申请软著,不会被国内代理盯上
    asm
        75
    asm  
       2024-01-04 23:34:50 +08:00
    linux 没这个需求,因为大部分程序不需要 GUI[手动狗头].

    想好看还想文件小,这个貌似只有 mfc 、wtl 。哦对,忘了 delphi 了,微信和 foxmail 的巅峰之作。
    Ritr
        76
    Ritr  
       2024-01-04 23:41:32 +08:00
    winform 还好吧,简单粗暴体积小
    yixiang
        77
    yixiang  
       2024-01-04 23:57:17 +08:00
    没人提 sciter ? 6M 大小,html + js + css 开发 ui ,有接口可以和原生语言交互,如 c ,rust 等。甚至支持 XP 。

    主要的坑在于 css 和 api 是自己的一套东西,和标准不一样。几年前 js 也是自己的,后来 quickjs 出来后换 quickjs 了,开发体验提升很多。

    拿来开发过几个小工具,开发体验比较差,但引擎本身挺强的。
    ggvoking
        78
    ggvoking  
       2024-01-05 01:01:02 +08:00 via iPhone
    .net Aot 被裁剪运行不起来,配个 rd.xml 加上类型就行了,很简单。
    memorycancel
        79
    memorycancel  
       2024-01-05 02:05:47 +08:00
    奔驰 特斯拉 等很多车机上的 ui 用的 qt
    rm0gang0rf
        80
    rm0gang0rf  
       2024-01-05 08:13:43 +08:00
    go+web
    Promtheus
        81
    Promtheus  
       2024-01-05 08:45:20 +08:00
    IMGUI
    gbw1992
        82
    gbw1992  
       2024-01-05 09:01:17 +08:00   ❤️ 1
    关于 Avalonia 独立发布后有三个 dll 的问题,在解决方案加上这个就可以了


    ```
    <AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
    ```
    Avalonia 不依赖框架打包的得六七十兆,的确有点大
    我在树莓派 3b 上运行,启动得好几秒
    creanme
        83
    creanme  
       2024-01-05 09:03:21 +08:00
    slint ?可以了解一下,可以使用 c++, js, rust 开发
    anytk
        84
    anytk  
       2024-01-05 09:10:07 +08:00
    nuklear ,用 gdi 后端,无依赖,尺寸小,单文件

    https://github.com/Immediate-Mode-UI/Nuklear/
    opiviqo
        85
    opiviqo  
       2024-01-05 09:13:17 +08:00
    pyside pyqt
    duke000
        86
    duke000  
       2024-01-05 09:18:18 +08:00
    wxwidgets
    leyoumake1997
        87
    leyoumake1997  
       2024-01-05 09:20:27 +08:00
    试试[wails]( https://github.com/wailsapp/wails),程序嵌套了个 webview ,ui 界面套一些开源组件库绝对杠杠的,在配合 go 写一些简单的后端业务逻辑,打包出去最小的可执行文件也只有 10MB 左右。
    xieren58
        88
    xieren58  
       2024-01-05 09:29:58 +08:00
    Avalonia 挺好用... 我做了几个小项目了...
    nbboy
        89
    nbboy  
       2024-01-05 09:30:33 +08:00   ❤️ 2
    你熟悉哪个就用哪个,不要纠结这种东西,有时间纠结还不如花点时间在业务上。
    june4
        90
    june4  
       2024-01-05 09:33:15 +08:00
    我以前直接在本地起个端口做成 web 服务
    用默认浏览器,系统里浏览器总是有的
    wodeguaiguai
        91
    wodeguaiguai  
       2024-01-05 09:41:15 +08:00
    miniblink
    hankli
        92
    hankli  
       2024-01-05 09:45:29 +08:00
    易语言: 我真的很伤心
    FrankAdler
        93
    FrankAdler  
       2024-01-05 09:46:33 +08:00 via Android
    前几天自学 winforms 做了个应用启动器,感觉简单好用,好不好看就无所谓了
    0TSH60F7J2rVkg8t
        94
    0TSH60F7J2rVkg8t  
       2024-01-05 09:48:47 +08:00
    @Hellert 好像 Delphi 现在的公司 Embarcadero 推出了社区版,是可以免费使用的:
    https://www.embarcadero.com/products/delphi/starter/free-download
    frank1357
        95
    frank1357  
       2024-01-05 10:02:23 +08:00
    wails + 1 主程序 golang , 界面支持各前端技术栈;
    golang 原生跨平台,前端技术界面便捷/丰富程度也非其他可比;
    tgcdz
        96
    tgcdz  
       2024-01-05 10:28:52 +08:00
    如果喜欢用 H5 做界面,可以试试这个 https://webui.me/ 。用本地浏览器作为 UI 界面,业务逻辑可以用 C/C++/Go 等开发
    yqf0215
        97
    yqf0215  
       2024-01-05 11:05:39 +08:00
    @Foxkeh
    纯微软平台的,似乎 aardio 真不错
    keymao
        98
    keymao  
       2024-01-05 11:45:02 +08:00
    @ahhui 商业化每年收入超过 5000 刀就得付费了,还不如直接用 Lazarus
    PrinceofInj
        99
    PrinceofInj  
       2024-01-05 12:23:52 +08:00
    @ysc3839 #69 不知道微软怎么想的。明明自己的系统组件都有用 winui3 写的了,然而我自己写一个小的程序,在系统上执行却需要额外再安装一下运行库,而不能用系统自带的。
    Henrylee8619
        100
    Henrylee8619  
       2024-01-05 12:26:05 +08:00 via iPhone
    刚看到标题就想起易语言,没想到楼主真是考虑了哈哈
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2939 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:58 · PVG 14:58 · LAX 22:58 · JFK 01:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.