发布网友 发布时间:2022-04-23 15:30
共1个回答
热心网友 时间:2022-04-08 06:50
“相对客观”的说:1)Qt在iOS和Android的UI支持上只能算是一般,和原生UI相差甚远,对平台新版本的新特性支持薄弱。VS对这方面的支持,基于乔布斯的评语“微软太缺乏审美能力”,我也表示完全不看好。2)业务层用Qt的库相比个家公司自己用原生的C艹库差别还有的。除非是哪家公司用Qt做了基础库,这是例外。基于VS的iOS、Android支持的编译器是gcc和clang,WinRT是MSVC,这部分和Qt都是一致的。3)Qt的反射封装或者是Meta系统封装很重,至少要超过了c艹标准的rtti。虽然这套系统适合用来开发UI,但是作为业务层,如此重的外壳,用Qt就失去了一部分用java、objectivec迁移到C艹的性能优势。VS里面由于编译链的*,而且基于llvm的coreclr支持还是幼儿期,几乎不用考虑c#的可能性。4)最近几个月都在观察QtBug列表,上面用户Qt对iOS、Android吐槽不断,小Bug层出不穷,甚至有的会影响正常启动。对WinRT的支持更不给力。VS对WinRT支持肯定会是Native的,至于其他两个平台,得靠自己维护了。5)Retina支持。除了Mac平台支持稳定,其他平台只是承诺要增加支持。那个ImproveRetina支持的帖子是去年发的,今年年初发布的Qt5.4也只是完善了Mac部分和加入实验性质的Windows、Linux支持。等到完美加入这部分支持,又是何年何月?6)Qt对移动端的投入究竟能有几斤几两?首先说一个不相干的话题是,Qt对桌面跨平台的支持可谓是筋疲力竭:对Windows8/8.1的2xDPI显示支持(HIDPI),还需要手动设置环境变量外加程序内启动选项选项才能开启,不然用Qt原始方式实现的界面都是变形扭曲的;Mac的StatusBar中用设置了template的NSImage何年才能有;Linux在从Qt5.1就regression消失的TrayIcon也是时隔三个大版本到即将发布的Qt5.4.2才有修复。其6个月的漫长的开发周期,庞大而臃肿的库,面对对更新迭代更疯狂的移动端,Qt的表现是Qt缺乏有对iOS、Android的相关支持,运行时家常便饭的各色crash,对WinRT的支持我认为这更像是一个hacker的项目。VS只有等VS2015才能评论。7)我认为跨平台的C艹支持最显著的收益,是UI层封装一次跨平台的组件还是业务层的代码复用和性能优化?同1)3)6)中讨论,我个人认为QtUI层的剥离平台相关的开发纯属扯淡,跨平台对C艹开放最大的收益还是复用高质量的基础库和核心业务代码带来的性能优势和项目维护优势。8)Qt的Mobile开发支持,本身的开发工具是平台相关的,就是说Qt不能在Windows下开发iOS和Android,Qt也不能在Linux下开发iOS。相比Windows下VS2015带来CrossMobilePlatform支持,开发机器只要是Windows就可以。这点上Qt编译链技术完败。