要写 win7+的桌面端单机软件,技术如何选型?
要求有小型本地数据库存储
可通过界面导入导出数据包
有全文检索和字段检索的需求
有大量 excel 和 word 的处理
界面好看漂亮
不能选用付费技术如 qt 这种
如何快速制作一个漂亮的安装包
我的开发环境是类 unix 环境 通常是 debian 和 mac 最好支持跨平台,不然得换电脑[这个有点过分]
electron
electron 22 之后就不再支持 win7 了,这个问题我值得考虑
.NET 7+Avalonia UI 满足你全部需求。
go 的 rust 的那些基于 WebViewKit 的都可以满足你,只不过就是安装的时候要安装 WebView 的 Runtime 就和.NET 那玩意一样,也可以用 Electron 22 的最后一个版本,我们都是这么用的。
都 win7 了 用老版本的 electron 也不是很过分嘛(
跨平台的话, .NET + Avalonia ,如果不考虑跨平台的话, 可以 .NET + WPF
SQLite 支持全文检索,但没办法自由配置语言。你如果只支持中文或者英文,可以直接用对应编译好的 Extension 。界面好看的话,要么用 Electron 套壳,要么 WPF 或者 WinForm+第三方 UI 库。安装包 Windows 上可以用 Wix ,你可以自己写界面套进去。但这个好像没办法在 Linux 里跑,而且你 debian 也很难开发 WinForm 。跨平台开发,还想要界面好看一些,要么你用 Avalonia 这种跨平台技术,要么就是各种 Web 套壳。Avalonia 可以做的比较好看,但也比较费精力。你需要手动打磨界面。功能不复杂还行,界面太复杂的话你可能大半的时间都花在这上面。Web 套壳就简单多了,前端组件一大把,最简单的你用 bootstrap 都能搞个很好看的 UI 。套壳技术也有很多,比如 Electron ,WebView2 ,tauri 什么的,你找个 Windows 7 能用的就行。安装包你弄个 Windows 虚拟机做就行了。
感觉 pyqt/pyside 合适这些需求
综合来看,csharp 符合你的要求,特别是针对 excel 处理,没什么比 csharp 更好的了
除了 qt 那只能选微软那套了, 好几种
你这需求,其实 pyside 挺符合的,就是不知道 pyqt 算 qt 不。
tauri.app
开源的 lazarus 也是一个选择,支持多平台开发,跨平台可选 qt 或 gtk
pyside 是 LGPL 协议,可以免费商用,不用担心 qt 的许可证问题
用 unix 环境开发 win7 客户端,即便是跨平台的框架,也得测试调试呀
qt & vc++ & WPF
不跨平台就 wpf ,控件用 materialdesigntoolkit 。跨平台 avalonia ,但是它有个字体的问题。ide 用 rider数据库操作 efcoro.sqliteexcel+word 处理用 openxmlsdk安装包用 visual studio installer 打包成 msi
QT 有部分也是 LGPL 的,实际上就是 QT 。 “免费”和“商用”即使你用 GPL 的库也没问题。问题在于你是否要把自己的代码以同样的 License 发布,或者说你是否要给你的客户提供你自己的源代码。对于 Python 来说,你发布 py 文件自然没问题,相当于你给你的客户提供了源代码。但你如果打包成 exe ,那么可以视为你把 pyside 以静态链接的方式打包进了你的程序里。按照 LGPL 的要求,你必须“允许用户修改你程序中 LGPL 的部分”。那么你要允许你的客户对你打包好的程序进行反向工程,需要提供对应的文件。这就是为什么在开发商业应用时不要碰任何沾了 GPL 三个字母的东西。
第一句的表述有问题,指的是 PySide 实际上就是 QT 。
其实 Python 可以不打成单文件包,这样里面的 DLL 可以轻松替换
跨平台可以考虑 Java 。界面好看用 JavaFX ,处理 Word 和 Excel 用 Apache POI ,全文检索有 lucene ,打包也方便
公司还在用 electron20 ,有几十 w 用户,升级就一行代码的事但是 pl 不同意
CEF 套壳。
MFC 撸起来啊
而且就算是打包成单文件,一样可以修改成动态加载外部 DLL ,把 qt 库排除出去,交付的时候把 dll 和 exe 一起打压缩包就好。
avaloniaui.net/
不想用 QT ,还要用 Mac 开发,答案是没有。最简单的道理:你要开发某个平台的软件,最起码你要有对应平台机器来做测试吧。你自己连测试机器都没有,怎么敢在 Mac 上开发直接交付给别人 Win 使用的。
用 22 之前的哪一个版本,足够了,而且还跨平台,html 写页面非常的友好。
界面的话 flutter 吧,剩下的用条件都没太大的差别,flutter 也有现成的 sqlite 组建可用
弱弱的问你一句,我搞个 kvm 来测试可以不?
Avalonia +1
flutter 最新版本已经不支持 Win7 了。
neutralino.js.org/docs/看下这个。 挺不错的。
#3 刚试了一下,好难啊🤣,没写过 WPF
mac 的 vs 装过,不知道实际能做跨平台的图形界面程序吗?谁知道
Windows 10 以前的系统,只要用了新版编译器,基本都不支持了,只能使用老版本编译器编译。
web+electron
老版本 electron 凑合用吧。。。也就只能这样了。。不然满足不了你的需求。
用 imgui
要最低兼容 win7,要跨平台和不用 qt,还要漂亮界面. 只有 electron 和 javafx 能满足了
WPF
下面是一个免费的全球IP地址数据库,包括了国家,城市,地区,和经纬度,以便你可以利用Google Map在地图上标注。这个数据库的精确度可能有60%左右。 SQL format…
我在使用 cursor ,copilot 等一些 AI 工具之后,也确实有这个问题,在编程这个领域内,AI 当前的结果是需要人去监管调整的,并不是直接可用,现在很难说什么时候 …
朋友的朋友给了个活儿给网站接入个支付,就叫他“老板”吧。 老板下属拉了这个活儿,老板分成,老板不管具体实施。 开始时候,老板和我沟通,跳过下属。下属和支付商沟通,跳过我。 …