求教写跨平台的桌面 gui 程序, electron 是不是个好的选择?

2017-12-12 20:31:32 +08:00
 jahan
目前看下来,个人觉得好处好像是,可以直接用网页的 js 代码,很多逻辑可以直接抄袭;
坏处好像这个节点很多人对 electron 嗤之以鼻,可是又没有人总结,也没有人给出更好的解决方案。
是不是 1,安装包太大了? 2,慢?
大家能不能指一条路呢。
19939 次点击
所在节点    Node.js
61 条回复
alexlee0728
2017-12-13 01:32:12 +08:00
Cocos studio
jahan
2017-12-13 01:41:08 +08:00
@param
@lengyihan
qt 挺好用的,就是 license 有点贵了。
shihira
2017-12-13 03:17:32 +08:00
当然应该用 qml 啊
janxin
2017-12-13 08:24:14 +08:00
qt 有免费实现啊
jahan
2017-12-13 08:36:00 +08:00
@inflationaaron 如果有一天满屏都是 electron 桌面,对系统也是考验,项目到后期效率和资源就成了关键了。qt 和 electron 都尝试下看看,谢谢大家。
jasperjia
2017-12-13 08:51:25 +08:00
曾经技术选型考虑过 Electron,不支持 XP,只能换用 NW.js
missdeer
2017-12-13 08:55:02 +08:00
业务需求决定技术选型
wu67
2017-12-13 09:24:16 +08:00
曾经我想用一个开源项目,但作者只放出了源码。
所以我只能 git clone。
只是当我 npm i 的时候,electron 一直 i 不了,三四次之后我就放弃了,直接转找其他 qt 打包好的。。。
jishu541464750
2017-12-13 09:29:32 +08:00
借楼请问一下,electron 可以开发类似$$或者网游加速器之类的应用么。
看了下文档,只看到了针对渲染进程的 session 有使用代理的方式( session.setProxy ),没看到能监听系统网络的 API。
evolify
2017-12-13 09:29:53 +08:00
go-sciter
leemove
2017-12-13 09:31:00 +08:00
@ivechan 为什么这条回复有种翻译腔在里面的感觉 哈哈哈哈
chairuosen
2017-12-13 09:32:24 +08:00
告诉你我们遇到一些坑。
node 原生库的多平台 rebuild 麻烦,系统内置的库在某些系统上有可能缺失。
node 进程和浏览器进程通信的 ipc 会阻塞浏览器渲染进程,通信多了就感觉卡。
窗口不 focus 时接收不到点击事件,所以 blur 时无法直接点击自己实现的窗口控制栏按钮关闭。
毕竟是个浏览器,本地交互有权限问题,比如粘贴不能识别为文件只是图片。
mac 下和输入法有兼容性问题,经常 crash,1.7.5 才修复。
调用 windows 通知系统有积压消息问题。
mac 下开关 dock 栏自动隐藏会导致禁止窗口缩放的控制失效。
Cooky
2017-12-13 09:33:29 +08:00
@param 坐等 PySide2
jahan
2017-12-13 09:42:56 +08:00
@chairuosen 感谢分享这么多经验。解决这些应该付出很多时间。
deadEgg
2017-12-13 09:58:27 +08:00
看好 electron,不看好 Qt。个人使用下来 Qt 有点老旧(望指正)。
nicevar
2017-12-13 11:30:01 +08:00
@deadEgg 其实关系不大,两者针对的需求不太一样,electron 比较适合偏业务逻辑的应用,对性能稍微有要求的用 electron 开发出来根本没法用,体验很差,除非是垄断行业,否则别人用 Qt 开发出类似的应用,用户全跑了,而 Qt 适合开发各种跨平台的应用,缺点就是开发效率低一点,不过在 symbian 时代后期就已经推出 qml,配合 js 开发效率高了不少,现在很多人都不知道自己电脑里很多应用都是 Qt 开发的,比如游戏平台暴雪的战网和 11 平台、Autodesk 系列、android 官方模拟器及 genymotion、amd 的驱动管理、反编译的 ida pro、播放器 vlc、虚拟机 virtualbox、google 的桌面软件系列、skype 和 yy 语言等等太多了
jahan
2017-12-13 12:26:26 +08:00
@nicevar 能不能介绍下学习路径? 目前只是对 python 算熟悉
tamlok
2017-12-13 13:02:32 +08:00
@jahan 可以试试 QML 或者 pyqt。另外,Qt 的 QWebEngine 能够调用 Javascript,混合开发还是很方便的。不过,C++来开发,进度的确是慢别人一步。
nicevar
2017-12-13 14:57:53 +08:00
@jahan 如果你的应用是偏逻辑的,用 electron 没啥问题,就是安装包比较大,如果写个小工具用它的话就不方便了,一丁点功能就上百兆的体积,如果你用 Qt 的话,要学习 C++,成本有点高,不用 Qt widget 用 qml 还好点,但是 qml 开发的时候遇到一些需要定制的东西还得用 c++封装,尽管这种情况不一定需要,不过你熟悉 Python 所以 PyQt 比较适合你现在的情况,搭建好环境了解一下 Qt 的 Gui 库和信号槽机制,然后对着官方文档就可以开工了,当然坑是少不了的
zjsxwc
2017-12-13 14:59:20 +08:00
atom 卡的要死, 居然还有人用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/414194

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX