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



Qt 如此强大为什么就是火不起来呢? 第1页

  

user avatar   _jason_wong_ 网友的相关建议: 
      

用Qt已经4年了,我来说说感受。

在我用Qt的这些年里,Qt一直处于不温不火的状态。有很多公司用,如YY、WPS这样用户过亿的产品,也有不对普通用户的军工、船舶。最近在汽车这块也比较火。但是Qt没有在被大规模的采用,往往是只有部分行业内Qt的使用率很高,这的确是事实。

Qt是我的主力开发框架,我拿Qt开发了客户端,服务器端,桌面端,移动端甚至还包括点嵌入式端。这这之中我遇到了很多Qt的不足以及Qt的强大。考虑到题目定义,在本回答中我主要讲不足。

0.互联网时代了,很多人已经答过这个,不展开了。

1.开发人员不足:这是我现在发现Qt这个生态系统里最大的问题。因为缺少开发人员,导致企业难以招到高质量的Qt工程师,然后不愿意展开Qt的项目,这简直就是恶性循环。我见过有公司因为担心招不到Qt工程师,直接把已经做好的产品雪藏,再用HTML5重新开发一遍。

2.工程师们对Qt认知普遍落后:直至今天,Qt从4.8开始推出的QML(QtQuick框架,计划是代替QtWidgets)仍然没在Qt圈子里普及,甚至很多人都不知道这是什么以及这个能干什么,这更别说其他工程师们了。

3.学习成本高:Qt有QtQuick,这个开发起来非常方便,但是这毕竟是新的框架,带来了新语言和新的开发模式,这意味着学习成本,很多人看到就望而止步,拒绝学习(没错,是拒绝学习),我本人也是在接触Qt两年后才慢慢接触这个框架。才发现这是好东西。退一步说,就算是只用QtWidgets,这也是C++,这个入门成本太高。套用我以前同学和我说的话:如果我学的是Web开发,我第一天就可以做出可视化的成果,用起来还不错。但是如果是C++,几个星期了说不定还是黑乎乎的控制台,学习的兴趣一下子就没了。

4.硬件要求高:我认为Qt的未来在于QtQuick,无论桌面、手机还是嵌入式。但是QtQuick对硬件要求很高(相对QtWidgets而言),没显卡,或者显驱不完善,不好意思,直接拜拜,跑不起来。很多公司因为这个,放弃了QtQuick,回到QtWidgets,去纠结那个C++到底适不适合开发界面的问题。甚至直接抛弃Qt。

5.太大:一个HelloWorld 10多MB,我觉得这个正常,毕竟Qt不是系统级别的库,但是很多人接受不了。另外Qt自己也出了lite计划,降低Qt的大小以及对硬件的依赖(一起解决我说的4、5两点),但是截止我编写本答案,该项目仍在开发中。

6.宣传力度低:举个例子,Qt以前就有一个虚拟键盘的组件,但是只给企业版,然后前段时间给开源了。但是我问过很多很多人,他们连有这个东西都不知道,仍然自己在造轮子。还有其他很多东西都是如此。其实这个来源的信息都是公布到官方的blog,但是是英文,很多人估计都不会去看一下。

7.授权协议:目前Qt是GPL和LGPL,这个就不用我详细解释了吧,动不动就要开源。除非买企业版解除这个限制,但是企业版又是一个大开销。


其实啊,我还是挺喜欢Qt的,千万别说我在黑Qt。

结论:Qt的前途是光明的,但是道路是坎坷的,Qt加油。


user avatar   yao-dong-27 网友的相关建议: 
      

你想要怎样火?

Qt只是成千上万的C++ Framework/Library之一,举办个开发者大会能来上千人,而且每年在世界多个国家举办。

你帮我想想还有几个这样的 Framework/Library?


user avatar   an-xian-biao-ge-tai 网友的相关建议: 
      

其实论做UI交互,Unity3d才是最牛的。

同样是拖控件,一次开发随便部署。

Windows、Mac、Linux通杀。

安卓、IOS通杀。

PS4、XBOX、Switch也通杀。

还能发布Webassembly,直接跑在浏览器上。

你能想象用PS4外接键盘,在电视上做表格是一种什么体验嘛?

支持鼠标控制、手柄控制、触摸控制,也支持重力感应、陀螺仪、蓝牙控制器。

能玩Socket通信、能玩http通信、还能玩串口通信。

而且最牛的是,它只需要写一遍代码,就能一次发布到26种平台上。只要定好锚点,分辨率就会随着屏幕大小自动适配,无需修改一行代码。

与之相比,QT无论生产力、功能性,还是生态资源、跨平台性,全都毫无优势。。。。


user avatar   di-ji-ma-nong-73 网友的相关建议: 
      

好看不代表强大


user avatar   bluedrum 网友的相关建议: 
      

Qt 最牛的地方在于保证顶层接口不变的情况,可以更换更多的显示引擎,这是从娘胎带来的优点,

因为一开始就要在不同的OS上显示,早期 Framebuffer,DirectX 等都带支持。

这样做有一个好处理就,你原来积累的大量经验代码可以无鏠对接到新的系统去。

到后面因为变成新的引擎切换方便,慢慢会在一些独特领域形成新的优势

如比 Qt for Webassembly 可以直接把原来的C++程序编成webassembly程序在浏览器里运行,并且性能没多大损失。换句话你可以把原来大量用C++写的游戏移植到浏览器运行。甚至是手机浏览器运行。想想应用场景有多大。


另外一个我估计 Qt for Flutter 也一定会搞出来

这里有一个非官方的 Qt for Flutter 版本,有兴趣可以了解一下

therecipe/flutter: Qt binding for Flutter/Dart | Showcase exa...
  Qt binding for Flutter/Dart | Showcase example for github.com/therecipe/qt - therecipe/fl...
原文链接: github.com/therecipe/fl

加上已经推出的 Qt for MCU ,相当于手机,网页,单片机可以重用,未来前景还是很大


user avatar   davidtsang 网友的相关建议: 
      

主要还是缺乏应用场景了。QT还是以桌面开发为最大优势,目前总体来说,WIN桌面平台已经做下坡路了,现在都是去搞移动开发了,搞桌面的还有几个?大量的人把时间花费在手机上了。桌面已经越来越没有需求了,QT再好,也缺乏用武之地。




  

相关话题

  Qt QTime的toString是如何实现的? 
  qt5.4以后会向什么方向发展? 
  在 Windows 上不用 Win32 API 可以绘制出一个窗口么? 
  微软宣布xamarin免费,对其他跨平台方案有什么冲击?对C#有什么影响? 
  关于Qt性能的损失,有没有一个可以量化的概念? 
  用 Lazarus 做 GUI 程序合适吗? 
  以GDI,WPF,win32,Qt,DX,Unity,.net为例的几组“名词”有什么联系? 
  有什么很好的软件是用 Qt 编写的? 
  Qt出最近版本了,支持全平台开发,而我以前没接触过,一直java,现在如何选择呢? 
  初学QT,课本看不下去啊,请问前辈们知道网上有什么教学视频讲得比较通俗易懂的吗? 

前一个讨论
2 的 100 次方到底有多大?
下一个讨论
如何看待宾夕法尼亚州拒绝重新计票?





© 2024-12-23 - tinynew.org. All Rights Reserved.
© 2024-12-23 - tinynew.org. 保留所有权利