百科问答小站 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 是个好东西,当然,对于红线内的特定应用来说。




  

相关话题

  特斯拉选择 Linux 作为车载系统的原因是什么? 
  被诺基亚放弃后,Qt的未来在哪里? 
  COOKIE和SESSION有什么区别? 
  Qt出最近版本了,支持全平台开发,而我以前没接触过,一直java,现在如何选择呢? 
  有哪些Qt博客写得好值得推荐看看? 
  ASP.NET MVC 如果全部用异步 Controller,会有什么效果?会成为高吞吐量,高并发的网站么? 
  Qt 5.7使用QWebEngine加载html做UI,但运行库却近70M,如何能减少体积? 
  大学生适合购买阿里云服务器哪个产品? 
  Qt QTime的toString是如何实现的? 
  既然PHP出了一个swoole,那node.js存在的意义是什么? 

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





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