• 请不要在回答技术问题时复制粘贴 AI 生成的内容
MrDarnell
V2EX  ›  程序员

要写 win7+的桌面端单机软件,技术如何选型?

  •  
  •   MrDarnell · Mar 28, 2024 · 6319 views
    This topic created in 952 days ago, the information mentioned may be changed or developed.
    • 要求有小型本地数据库存储
    • 可通过界面导入导出数据包
    • 有全文检索和字段检索的需求
    • 有大量 excel 和 word 的处理
    • 界面好看漂亮
    • 不能选用付费技术如 qt 这种
    • 如何快速制作一个漂亮的安装包
    • 我的开发环境是类 unix 环境 通常是 debian 和 mac 最好支持跨平台,不然得换电脑[这个有点过分]
    42 replies  •  2024-04-01 08:45:44 +08:00
    xtreme1
    xtreme1
    Mar 28, 2024
    1
    electron
    MrDarnell
    MrDarnell
    OP
    Mar 28, 2024
    2
    @xtreme1 electron 22 之后就不再支持 win7 了,这个问题我值得考虑
    xomix
    xomix
    Mar 28, 2024❤️1
    3
    .NET 7+Avalonia UI 满足你全部需求。
    lllllliu
    lllllliu
    Mar 28, 2024
    4
    go 的 rust 的那些基于 WebViewKit 的都可以满足你,只不过就是安装的时候要安装 WebView 的 Runtime 就和.NET 那玩意一样,也可以用 Electron 22 的最后一个版本,我们都是这么用的。
    KMpAn8Obw1QhPoEP
    KMpAn8Obw1QhPoEP
    Mar 28, 2024 via Android
    5
    都 win7 了 用老版本的 electron 也不是很过分嘛(
    beginor
    beginor
    Mar 28, 2024
    6
    跨平台的话, .NET + Avalonia ,如果不考虑跨平台的话, 可以 .NET + WPF
    Mithril
    Mithril
    Mar 28, 2024❤️1
    7
    SQLite 支持全文检索,但没办法自由配置语言。你如果只支持中文或者英文,可以直接用对应编译好的 Extension 。
    界面好看的话,要么用 Electron 套壳,要么 WPF 或者 WinForm+第三方 UI 库。
    安装包 Windows 上可以用 Wix ,你可以自己写界面套进去。但这个好像没办法在 Linux 里跑,而且你 debian 也很难开发 WinForm 。

    跨平台开发,还想要界面好看一些,要么你用 Avalonia 这种跨平台技术,要么就是各种 Web 套壳。
    Avalonia 可以做的比较好看,但也比较费精力。你需要手动打磨界面。功能不复杂还行,界面太复杂的话你可能大半的时间都花在这上面。
    Web 套壳就简单多了,前端组件一大把,最简单的你用 bootstrap 都能搞个很好看的 UI 。套壳技术也有很多,比如 Electron ,WebView2 ,tauri 什么的,你找个 Windows 7 能用的就行。

    安装包你弄个 Windows 虚拟机做就行了。
    debuggerx
    debuggerx
    Mar 28, 2024
    8
    感觉 pyqt/pyside 合适这些需求
    lstz
    lstz
    Mar 28, 2024 via Android
    9
    综合来看,csharp 符合你的要求,特别是针对 excel 处理,没什么比 csharp 更好的了
    iorilu
    iorilu
    Mar 28, 2024
    10
    除了 qt 那只能选微软那套了, 好几种
    qiuhang
    qiuhang
    Mar 28, 2024
    11
    你这需求,其实 pyside 挺符合的,就是不知道 pyqt 算 qt 不。
    Senar
    Senar
    Mar 28, 2024
    12
    zqf01
    zqf01
    Mar 28, 2024
    13
    开源的 lazarus 也是一个选择,支持多平台开发,跨平台可选 qt 或 gtk
    debuggerx
    debuggerx
    Mar 28, 2024
    14
    @qiuhang pyside 是 LGPL 协议,可以免费商用,不用担心 qt 的许可证问题
    mioktiar56
    mioktiar56
    Mar 28, 2024
    15
    用 unix 环境开发 win7 客户端,即便是跨平台的框架,也得测试调试呀
    ugpu
    ugpu
    Mar 28, 2024
    16
    qt & vc++ & WPF
    snailya
    snailya
    Mar 28, 2024
    17
    不跨平台就 wpf ,控件用 materialdesigntoolkit 。跨平台 avalonia ,但是它有个字体的问题。
    ide 用 rider
    数据库操作 efcoro.sqlite
    excel+word 处理用 openxmlsdk
    安装包用 visual studio installer 打包成 msi
    Mithril
    Mithril
    Mar 28, 2024❤️1
    18
    @debuggerx QT 有部分也是 LGPL 的,实际上就是 QT 。 “免费”和“商用”即使你用 GPL 的库也没问题。
    问题在于你是否要把自己的代码以同样的 License 发布,或者说你是否要给你的客户提供你自己的源代码。

    对于 Python 来说,你发布 py 文件自然没问题,相当于你给你的客户提供了源代码。但你如果打包成 exe ,那么可以视为你把 pyside 以静态链接的方式打包进了你的程序里。
    按照 LGPL 的要求,你必须“允许用户修改你程序中 LGPL 的部分”。那么你要允许你的客户对你打包好的程序进行反向工程,需要提供对应的文件。

    这就是为什么在开发商业应用时不要碰任何沾了 GPL 三个字母的东西。
    Mithril
    Mithril
    Mar 28, 2024
    19
    @Mithril 第一句的表述有问题,指的是 PySide 实际上就是 QT 。
    ShadowPower
    ShadowPower
    Mar 28, 2024
    20
    @Mithril 其实 Python 可以不打成单文件包,这样里面的 DLL 可以轻松替换
    xulihang
    xulihang
    Mar 28, 2024
    21
    跨平台可以考虑 Java 。

    界面好看用 JavaFX ,
    处理 Word 和 Excel 用 Apache POI ,
    全文检索有 lucene ,
    打包也方便
    datadump
    datadump
    PRO
    Mar 28, 2024
    22
    公司还在用 electron20 ,有几十 w 用户,升级就一行代码的事但是 pl 不同意
    jones2000
    jones2000
    Mar 28, 2024
    23
    CEF 套壳。
    F7TsdQL45E0jmoiG
    F7TsdQL45E0jmoiG
    Mar 28, 2024
    24
    MFC 撸起来啊
    debuggerx
    debuggerx
    Mar 28, 2024
    25
    @ShadowPower 而且就算是打包成单文件,一样可以修改成动态加载外部 DLL ,把 qt 库排除出去,交付的时候把 dll 和 exe 一起打压缩包就好。
    acctv2
    acctv2
    Mar 28, 2024
    27
    不想用 QT ,还要用 Mac 开发,答案是没有。

    最简单的道理:你要开发某个平台的软件,最起码你要有对应平台机器来做测试吧。你自己连测试机器都没有,怎么敢在 Mac 上开发直接交付给别人 Win 使用的。
    tushan
    tushan
    Mar 28, 2024
    28
    @MrDarnell 用 22 之前的哪一个版本,足够了,而且还跨平台,html 写页面非常的友好。
    kaminic
    kaminic
    Mar 28, 2024
    29
    界面的话 flutter 吧,剩下的用条件都没太大的差别,flutter 也有现成的 sqlite 组建可用
    MrDarnell
    MrDarnell
    OP
    Mar 28, 2024
    30
    @acctv2 弱弱的问你一句,我搞个 kvm 来测试可以不?
    dhssingle
    dhssingle
    Mar 28, 2024
    31
    Avalonia +1
    yf215
    yf215
    Mar 28, 2024
    32
    @kaminic flutter 最新版本已经不支持 Win7 了。
    flyingfz
    flyingfz
    Mar 28, 2024
    33
    https://neutralino.js.org/docs/

    看下这个。 挺不错的。
    bytewalk
    bytewalk
    Mar 28, 2024
    34
    @xomix #3 刚试了一下,好难啊🤣,没写过 WPF
    nutting
    nutting
    Mar 28, 2024
    35
    mac 的 vs 装过,不知道实际能做跨平台的图形界面程序吗?谁知道
    9dP06m83vIV00l72
    9dP06m83vIV00l72
    Mar 28, 2024
    36
    Windows 10 以前的系统,只要用了新版编译器,基本都不支持了,只能使用老版本编译器编译。
    achira
    achira
    Mar 28, 2024
    37
    web+electron
    flyqie
    flyqie
    Mar 28, 2024
    38
    老版本 electron 凑合用吧。。。

    也就只能这样了。。不然满足不了你的需求。
    hanxiV2EX
    hanxiV2EX
    Mar 28, 2024 via Android
    39
    用 imgui
    QWE321ASD
    QWE321ASD
    Mar 29, 2024
    40
    要最低兼容 win7,要跨平台和不用 qt,还要漂亮界面. 只有 electron 和 javafx 能满足了
    tangmanger
    tangmanger
    Mar 29, 2024
    41
    WPF
    xomix
    xomix
    Apr 1, 2024
    42
    @poorcai 看看微软的教程,很好写的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5405 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 173ms · UTC 02:05 · PVG 10:05 · LAX 18:05 · JFK 21:05
    ♥ Do have faith in what you're doing.