想做一款类似百度网盘(主要 UI 很类似)的软件,之前一直 mfc+soui 在 windows 开发,由于需要到多平台运行,考虑 4 种方案来开发: 1.net+wpf 2.java 3.qt 4.electron 或者 nw (发布的包有点大,基本排除)
大家有没有好的推荐,选择哪个好点?
1
ysc3839 2021-03-03 16:03:16 +08:00 via Android
你的方案里 1 是不能跨平台的,2 已经不太流行了,只剩下 3 4 可选,你又觉得 4 太大,那只有 3 了。
|
2
fixend 2021-03-03 16:06:47 +08:00
我的话,只考虑 Flutter 或 electron
|
3
PUBG98k 2021-03-03 16:10:34 +08:00
|
6
Shazoo 2021-03-03 16:33:21 +08:00 2
2 年前,也纠结 QT 还是 Electron 。最后选了 Electron……
好吧,这个项目到现在都还没结束……您细品。 |
7
HeapOverflow 2021-03-03 16:34:46 +08:00
discord 和 slack 桌面版都用的 electron,用户体验都很很不错。
|
8
fixend 2021-03-03 16:42:06 +08:00 2
|
10
xing7673 2021-03-03 16:58:48 +08:00 via iPhone
目前观察到的直接选择 electron 吧,不选 flutter 主要是成熟应用把 flutter 当做插件用,纯 flutter 的还需要成功案例。
|
11
Jirajine 2021-03-03 17:19:33 +08:00
试试这个? https://tauri.studio/
距离 stable 也不算远了。 |
12
imkerberos 2021-03-03 18:00:20 +08:00 3
Qt 有 20 多年的历史, N 多国外大型项目在用, 什么 AutoCAD, Maya 之类的. 你觉得呢?
|
13
xcstream 2021-03-03 18:15:17 +08:00
现在趋势就是网页套壳
|
14
MeteorCat 2021-03-03 18:16:37 +08:00 via Android
electron + nw,招人好招
|
15
3dwelcome 2021-03-03 18:20:32 +08:00
看是不是项目完全自己开发,我个人倾向于游戏开发全平台那种 UI 。
WEBVIEW UI 团队开发可以,一个人开发,JS 上也没什么太大的积累,个人感觉写起来没有 C++舒心。( JS 大佬除外,V2 应该有不少) |
16
GM 2021-03-03 18:37:35 +08:00
uno 可以考虑一下
|
17
northisland 2021-03-03 18:41:01 +08:00
qt
|
18
northisland 2021-03-03 18:48:14 +08:00
pyqt (qt) -> git-cola
PyGObject (gtk) -> gnome meld 很棒的开源软件,ubuntu apt 直接安装 |
19
yitingbai 2021-03-03 21:55:22 +08:00
这 4 个中, Qt 内存占用最低, 比其他 3 个小好几倍, 安装包体积最小,性能高, 但是上手难. 我推荐 javafx 开发桌面端, 不过百度网盘这种, 不需要和系统 api 交互, 类 web 端就好了, electron 应该最适合你的需求
|
20
imn1 2021-03-03 22:08:30 +08:00
Qt 只是没有中文手册,国内相对少,国外用的人很多,文章、例子也多
|
21
westoy 2021-03-03 22:09:09 +08:00
@imkerberos
@xcstream 其实中古时代就流行网页套壳了 出 ActivePerl 和 ActivePython 的 ActiveState 家的 komodo edit/IDE 就是基于 mozilla 的 xulrunner 的, 比 atom 、vscode 早了七八年 也有不少人就是直接套个 qtwebview 直接上的 |
22
kylix 2021-03-03 22:22:22 +08:00
lazarus
^o^ |
23
loginbygoogle 2021-03-03 22:40:11 +08:00
如果是商业应用,electron 分分钟给你破解,有 win32 或 Swift 基础,可以直接 Flutter
|
24
wzzzx 2021-03-03 22:49:54 +08:00
Qt,用 QML 开发分分钟的事
|
25
ericls 2021-03-03 22:51:15 +08:00 via iPhone
unity
html |
26
LarryWang 2021-03-03 22:55:04 +08:00
无远+ electron
|
27
hnbcinfo 2021-03-03 23:59:59 +08:00
xaml+C#
前几天试过,用 Xamarin 写一套界面,可以轻松打包成 pc 和 Android 、iOS 的程序,不过在写界面的时候稍微麻烦,毕竟要兼容多平台。和传统的 wpf 有些区别。 https://docs.microsoft.com/zh-cn/xamarin/ |
28
weimo383 2021-03-04 00:47:24 +08:00 via Android
@loginbygoogle 怎么破解?它就一个 exe
|
29
levelworm 2021-03-04 02:00:25 +08:00 via Android
习惯 MFC 的话估计是 C++?那上手 QT 应该不难。甚至可以先用 PyQT 做个原型出来看看。
|
30
noqwerty 2021-03-04 05:02:17 +08:00 via Android 1
看完这个帖没多久就刷到了 Flutter 2 的消息,放在这供大家参考吧: https://developers.googleblog.com/2021/03/announcing-flutter-2.html
|
31
KaoN 2021-03-04 07:22:04 +08:00 via Android
qt 问题不大,虽然最近社区和 qtc 意见分歧很大,qt5 还是可以用的
|
32
NewTab12138 2021-03-04 07:51:30 +08:00 via iPhone
桌面端用 electron,移动端用 flutter, 这是最佳答案
|
33
murmur 2021-03-04 08:07:04 +08:00
flutter 是给 native 程序员用的,不是给前端用的,而且这东西的 web 和 windows 版看看就行了
几千个 issue 叫最佳解决?真敢吹啊 |
34
dingwen07 2021-03-04 08:12:51 +08:00 via iPhone
Qt
|
35
supermoonie 2021-03-04 08:20:00 +08:00 via iPhone
最近在使用 jcef 开发跨平台的桌面应用,有兴趣的话,可以发你链接
|
36
yolee599 2021-03-04 08:22:50 +08:00 via Android
WPS 就是 Qt 做的,挺不错的,但是 Qt5 之后走商业路线了
|
37
yingzir 2021-03-04 08:24:36 +08:00 1
没有人提 uno 吗? https://platform.uno c# 开发,比较成熟了
|
38
AndyAO 2021-03-04 08:24:47 +08:00 1
.NET(MAUI) 和 Java(skija) 的新方案需要等,所以指望不上了。
目前 JVM 上有 JavaFX,C#上有 Xamarin 可以用。 当然,如果不嫌老,Swing 也行。 |
39
diyisoft 2021-03-04 08:28:26 +08:00
弱弱的推荐一下 Delphi 最新版本 :)
|
40
AndyAO 2021-03-04 08:28:39 +08:00
楼上说的 uno 刚刚听说,Windows 用 UWP,而跨平台用 Xamarin 和 WebAssembly 。
The Story About .NET Cross Platform UI Frameworks – The Half-Blood Programmer – Stories from Lex Li on technologies. https://blog.lextudio.com/the-story-about-net-cross-platform-ui-frameworks-dd4a9433d0ea?gi=ed6c9cc36c51 |
41
sarlanori 2021-03-04 08:35:18 +08:00 via Android
qt 除了开发效率低一点,其他挺好的,大型项目还是推荐用 qt,项目不大的话都可以吧
|
42
bthulu 2021-03-04 08:52:32 +08:00
unity 没人用么, 这个也能跨平台的, 招人也容易
|
44
missdeer 2021-03-04 09:21:05 +08:00
Qt 在 C++ GUI 框架中开发效率绝对算高的
|
45
XIVN1987 2021-03-04 09:24:53 +08:00
qt 跨平台、性能好、功能丰富,,久经考验,值得信赖
不过 C++学习、使用难度较大,,建议试试 PyQt 、PySide |
47
janxin 2021-03-04 09:48:45 +08:00
取决于你的开发能力啊,你的开发了解或者熟悉 Qt 那就上 Qt,没必要再去踩 Electron 的坑
如果都不熟,要看你对功能需求,很多程序对本地功能需求不大的前提下,Electron 是一个很好的选择。 看你的需求,百度网盘这种就算,界面与功能交互不复杂,下载进程其实就走独立的本地进程即可。 |
48
smilenceX 2021-03-04 10:05:12 +08:00
|
49
sssooonnnggg 2021-03-04 10:12:59 +08:00
考虑下 imgui ?
|
50
nicevar 2021-03-04 10:23:36 +08:00
看你是做项目玩还是用了,如果是用肯定选择成熟的框架,那 Qt 就是最好的选择,毕竟 Qt 开发的软件几乎每个人的电脑上都有,游戏平台一堆都是 Qt 开发的,还有各类行业软件,反正我随便搜了一下电脑里有几十个,我的电脑里四个游戏平台,还有 AMD 的驱动管理、金士顿 SSD 管理软件、企业微信、AutoCAD 、抓包的 wireshark 、音乐的 MusicCore 和 GuitarPro 、IDE 的 HBuilderX,太多了。
|
51
chinvo 2021-03-04 10:28:22 +08:00
.Net 需要配合 Avalonia UI 才能跨平台
用 Xamarin 的话勉强算跨平台(共用核心库, 各平台分别建 UI 工程) C++ 和 QT 用起来也不错 后排提示, 跨平台扯着蛋 |
52
Torpedo 2021-03-04 10:28:32 +08:00
这么多推荐 flutter 的,想问下桌面端 flutter 有什么案例吗?
|
53
paoqi2048 2021-03-04 10:29:23 +08:00
看你之前用的 MFC,那就 Qt 吧
|
54
newmlp 2021-03-04 10:31:11 +08:00
Qt,久经考验
|
55
crazytree 2021-03-04 10:38:49 +08:00
需要设计可以联系我:P
|
56
TomVista 2021-03-04 10:58:24 +08:00
出产品当然 qt,electron,别的都是玩具
|
57
shunia 2021-03-04 11:04:19 +08:00
@noqwerty #30 应该是最新的稳定版发布后就计划好的,我感觉说是 2,其实主要就是网页平台基本 production-ready 了
|
58
shunia 2021-03-04 11:06:56 +08:00
@bthulu #42 Unity 因为是渲染引擎所以做 App 是挺耗性能的,很少有人选择。
@murmur 游戏工具有用 Unity 做桌面端的,比如: https://www.fairygui.com/ 这个 UI 工具就是用 Unity 开发的跨操作系统的桌面端。 |
59
loginbygoogle 2021-03-04 11:12:03 +08:00 via iPhone
@weimo383 反编译太容易,被动开源不可取
|
60
charlie21 2021-03-04 11:22:17 +08:00
electron
参考 https://github.com/Xmader/aria-ng-gui |
61
kongziming 2021-03-04 12:00:35 +08:00
Qt,使用过 MFC 的话,用起 Qt 简单易上手
|
63
buzailianxi 2021-03-04 12:14:51 +08:00
qt
|
64
g00001 2021-03-04 12:27:43 +08:00
其实前端网页能共用就行了,没有必要底层一定要跨平台,这样避免不必要的给自己挖坑。
ELectron 其实不如微软 Edge 的 WebView ( Chromium 内核) 轻量简洁。 aardio 里调用 WebView 的例子,生成的 EXE 文件打包就几百 KB import win.ui; var winform = win.form(text="Edge 浏览器控件 - web.view";right=759;bottom=469;bgcolor=16777215) import web.view; var wb = web.view(winform); wb.export({ alert = function(msg){ winform.msgbox(msg); return 123; } nativeLog = function(msg){ winform.msgbox(msg); } }) wb.html = /** <script type="text/javascript"> alert("test").then( v=>nativeLog(v)) </script> **/ winform.show(); win.loopMessage(); |
65
littlewing 2021-03-04 12:51:38 +08:00 via iPhone
electron 感觉很耗资源,不流畅
|
66
BernieDu 2021-03-04 12:59:33 +08:00
跨平台 UI 库还没黄啊。。android 和 iOS 本身就不应该共用一套设计,so stupid,外加原生开发体验很爽性能很高。没错,我是原生派
|
67
QBugHunter 2021-03-04 13:18:42 +08:00 1
Qt 最优选,但如果选择 Qt 的话招人是个问题,搞 C++的工资要求都不低(不算我)
Electron,不适合高性能产品,如果没有对性能上的追求,Electron 也是个好的选择 |
68
fgodt 2021-03-04 13:34:01 +08:00
qt,electron 其他都不靠谱
|
70
lonewolfakela 2021-03-04 14:15:00 +08:00
其实弄个 wine 也不是不可以……
|
71
SenLief 2021-03-04 14:18:57 +08:00
qt 在跨平台上更友好,如果不在乎包大小,那无疑 electron 更方便。
|
72
piaochen0 2021-03-04 14:23:01 +08:00
@murmur 我们之前用 unity 做过 app,就是考虑跨平台,各种坑,包也特别大,很多东西也没解决方案。慎用...
|
73
ACodelover 2021-03-04 14:51:23 +08:00
GTK,最近刚发布了 GTK4
|
74
Lemeng 2021-03-04 14:57:58 +08:00
QT,容易,好上手
|
75
Otho 2021-03-04 15:13:09 +08:00
推荐 Qt ,qt5 完整的做过一个跨平台的网盘项目,系统差异大的需要自己处理一下,github 上多找找也有不少开源库。就是资料少一点儿,需要自己慢慢找。
|
76
nutting 2021-03-04 15:13:14 +08:00
知乎上的轮子哥搞了一个 ui 组件,你问问
|
77
AmiKara 2021-03-04 15:46:55 +08:00
不管选什么最后开发还是与开发能力有关,electron 确实有很多坑,但也有类似于 vsc 这种非常优秀的产品,还是得看个人的技术栈或学习能力。
|
79
nerocc 2021-03-04 16:23:55 +08:00 via Android
真的需要发布包小的话,不要等框架,自己找一个类似于 WebWindow 这种的做前端,然后后端用一个自己懂得的高效率语言写一个,然后自己想办法打包起来。
SteveSandersonMS/WebWindow |
80
yunyuyuan 2021-03-04 16:33:18 +08:00
PyQt,写起来挺快,运行也不错
|
81
wangxiaoaer 2021-03-04 16:40:44 +08:00
@Torpedo #52 同问,先找个 demo 运行下看看都找不到
|
82
thtznet 2021-03-04 17:10:17 +08:00
MAUI,马上出正式版了
|
83
ragnaroks 2021-03-05 09:30:39 +08:00
现在稳定的只有 QT,或许可以等 MAUI,其它的都是自娱自乐
|
84
Otho 2021-03-05 10:28:27 +08:00
@csulyb Qt 的坑说起来挺多,但是我在开发过程中基本遇到的都能有可以使用原生的解决办法。与 js 交互有点麻烦,WebEngine 需要 js 单独支持,文件系统有差异需要使用原生方法解决,网络库不是很好用,建议使用开源的库,比如 Google 的。再有就是打包方面的问题了: Windows 的资料比较多,Mac 和 Linux 的较少,Linux 的看你需求使用官方的也能行,我用的一个开源解决方案 https://github.com/probonopd/linuxdeployqt 。Mac 的可以看一下论坛里的帖子 ,我的博客中也有一些总结,比较简单,可以参考一下 https://blog.msmk.live/
|