百科问答小站 logo
百科问答小站 font logo



请问一下,跨平台解决方案中,Qt 和 Electron 孰优孰劣? 第1页

  

user avatar   skywind3000 网友的相关建议: 
      

之前用过 Qt4,后来基于 Atom Editor写过一些插件自己玩(不知道算不算用了 Electron?),现在天天在用 钉钉,云音乐之类的。

实在要比较的话,你可以类比用 Html5 开发的游戏(比如神经猫之类)和 Native游戏之间的区别。简短点说,Electron开发项目是不错,但也给你画了一条红线,让你在享受它便利性和简单性的同时,不能越雷池半步。

不知道你们有没有没发现,不管是网易云音乐,钉钉,Atom Editor,Slack,这些基于 Chrome的桌面Web解决方案做出来的UI都是一大坨的么?就是一个 WebView控件扔那里,所有东西有且只能显示在这个 WebView里面,所有控件都是由这个 WebView控件自己绘制在里面,你不能弹任何超越这个 WebView的对话框,多窗口,否则会麻烦死你,你想做wps,yy这类软件,且不说性能问题,基本上是很难解的。

这种 App一般需要一个唯一的大窗口,要占据屏幕比较大的空间,现成控件虽然多,但用多了以后,所有这类app看起来都是黑雷同的。性能嘛,用过上面那些软件的,各位应该有比较直观的体验,它比较擅长做控件数量少的,每个控件都是大拓大拓那种。

如果你的应用属于上面这些类型,那么挺好的,Electron 适合你。

再者,界面和 C++原生渲染的结合,Electron中,C++可以给后端的 nodejs写一些 module,但要再前端 Chrome的 WebView里面用 C++实现一些界面逻辑,目前我还没看到比较好的方法(反过来Qt 的 Native窗体下嵌入一个 WebView却很容易)。这就是说,你得完全基于 js/coffee 来完成你的界面逻辑,方便的同时,也给你画了一条红线,让你不能越雷池半步,比如你想实现个 YY的房间,里面有一个自己开发的播放器,用自己私有协议传输数据,或者用自己改过的编码格式来解码视频,或者你有个效果(如3D翻页)用 html很难以平滑的模拟,又或者某个控件变化多端,html做起来太难了(比如一个 Excel的单元格,状态实在太多了),你想用C++实现一下,那么对不起,红线画那里了。

最后,Electron对 Windows的支持太差了,bug不断啊,简直是,你们用用Atom Editor的windows版本,比如 One Light风格用了 Electron里面 Native的滚动条,这个滚动条我提了至少三个bug,无数人抱怨,Mac/ Ubuntu下都没问题。

如果你对这些都无所谓,就是个轻量级消费类 APP,产品经理不会有一天说给主窗口的列表控件里加 2000个 ITEM,同时以后也不需要去接触红线外的东西,那么 Electron挺适合的。

Electron 是个好东西,当然,对于红线内的特定应用来说。




  

相关话题

  Qt 5.7使用QWebEngine加载html做UI,但运行库却近70M,如何能减少体积? 
  QT 5.7 官方下载的各种版本如何区别? 
  qt 自定义信号为什么可以不在cpp文件实现,为何有时实现了会报重定义这样的错? 
  浏览器自身为什么不集成js,jQuery文件?反正每个网站基本都会用到? 
  是什么让 Ubuntu 选用 Qt 而不是 GTK? 
  qt5.4以后会向什么方向发展? 
  如何才能学到Qt的精髓? 
  用 Lazarus 做 GUI 程序合适吗? 
  如果同时有两个项目让你选择,一个是使用C++的QT,一个是用JAVA的Android,你愿意往哪个方向发展?请说出您的理由。 
  前后端分离项目,接口返回 200 但是里面返回 500 合理吗? 

前一个讨论
如何在 Linux 下利用 Vim 搭建 C/C++ 开发环境?
下一个讨论
全世界目前最大威胁是什么?





© 2024-11-22 - tinynew.org. All Rights Reserved.
© 2024-11-22 - tinynew.org. 保留所有权利