有什么 QT 开发经验分享?

发布时间:
2024-10-21 14:23
阅读量:
10

作为一个老Qt程序员过来人而言

不要执着于对UI的还原

不要太扣控件样式的细节

也不要沉迷于对界面交互的设计

说到这里估计有人想说:

“你这家伙胡说八道什么!不管界面的样式,那你做锤子的界面!”

先别着急,且听我细说

为什么我不建议太执着于对Qt做界面这块的深入

主要是因为实在是收益不大


就目前而言

做交互、做动画、做设计的王者绝对是现在web前端称霸

根本不是Qt的强项所在

你花很多的精力去在Qt上面去研究它不擅长的东西

还不如花时间去学习它的优势地方

首先要思考这几个问题

在哪些领域里面Qt是无法取代?

必须是Qt不可吗?

用Qt好处?


咱们一个一个问题来

首先你想要知道Qt在哪些领域发光发热

得需要知道哪些行业或者哪些公司会需要Qt

这个信息很容易就知道

答案就在各个招聘平台获取

https://www.zhipin.com/wapi/zpCommon/download/index?type=qr&pkn=intro&sid=jobbanner&w=80&h=80 (二维码自动识别)


就拿Boss举个例子,在上面搜索一下Qt工程师的岗位

就能很直观的看到哪些大公司需要招Qt的

找到这些巨头公司,看下他们的主业是做哪块领域

搜索的第一个公司就是浙江大华,做安防行业

第二个公司是中国电建,做工程行业

往下翻也有做物联网、医疗设备等等

查询完这些岗位你会发现Qt还挺吃香的

不少领域的都能看到它的影子出现

并且里面不缺乏一些巨头

但是仔细想一想,个人平时很少会接触到这些巨头的产品

这就要提到Qt做出产品一个特性

他很少会出现ToC的产品里面

没错,他是做ToB的

这里就要简单讲一下ToB和ToC的区别

ToB(Business-to-Business)和ToC(Business-to-Consumer)是两种常见的商业模式,用于描述企业与企业之间以及企业与消费者之间的商业交互关系。它们在以下几个方面存在区别: 目标受众:ToB主要面向企业和机构,而ToC主要面向消费者和个人用户。 产品或服务:ToB通常提供针对企业的产品或服务,如SaaS(软件即服务)、企业级软件解决方案、工业设备、供应链管理等。ToC则提供直接面向消费者的产品或服务,如电子产品、服装、食品、旅游等。 销售过程:ToB的销售过程通常较长,需要与企业进行谈判、合作以满足特定需求。ToC的销售过程相对较短,消费者可以通过线上或线下渠道直接购买产品。 产品定价:ToB的产品定价通常基于合同协商和订阅模式,价格较高,且通常依赖于定制化和服务。ToC的产品定价相对更低,可以基于零售价进行销售。 市场规模:ToB市场通常较小,因为仅限于企业和机构。ToC市场规模通常更大,因为面向广大的消费者群体。 营销策略:ToB营销通常注重建立专业形象和信任感,例如通过行业展会、商务合作等方式进行宣传。ToC营销更加注重消费者需求、个性化推荐和广告宣传,以吸引消费者的关注和购买。 需要注意的是,ToB和ToC并不是完全独立的市场,很多企业既有ToB业务又有ToC业务,甚至相互交织在一起。这取决于企业的业务定位和战略选择。 总之,ToB和ToC代表了两种不同的商业模式和目标市场,对于企业来说,理解两者的差异和特点,有助于制定适合自身业务的营销策略和商业模式。

通俗易懂的说,ToB需要定制服务,ToC才需要有吸引力

一款好的Qt产品他面向的是企业和机构

客户更看重的是他的成本、稳定、安全

而界面好看、交互流畅对于他来说只是一个加分项

你说你把Qt界面做出花来

高科技UI质感、酷炫多彩皮肤

各种交互动画效果闪瞎用户双眼

但是一问功能做怎么样了

不好意思心思都花在界面上了

后台逻辑写的一坨狗屎一样

动不动就程序卡顿、奔溃

你看客户会不会把你骂得狗血淋头


回到第二个问题,必须是Qt不可吗?

现如今有不少的兴起的后起之秀,比如Electron、Flutter等等

而这些新奇的语言他们的强项就是界面的开发

我用Electron写出来的界面效果可以任意吊打我之前写过任何一款Qt界面

不是一个量级的碾压,并且开发成本很低

这就是我不建议去深入Qt界面样式的原因

拿自己的弱项碰他人的强项

反向田忌赛马

花很多时间和精力放到一个收益很低的方向

是很吃亏的事情

如果说Qt的其他内容都会的差不多了

然后再来学学界面样式

给自己的产品做做加分项是挺不错的

但是不要本末倒置

一开始做Qt开发的时候就把重点的方向搞错了

如果你真想做个好看的界面

那为什么不一开始就用Electron、Flutter来开发

既然用了Qt就用它擅长厉害的领域


用Qt好处?

既然界面拼不过,那为什么不在自己擅长的领域继续做大做强

对于ToB的业务,Qt还是很坚挺

这点就不得不夸一下Qt的几个优点了

1.优异的性能

性能上的卓越这点没什么好说,秉承了C++的优良血统,脚踩其他语言

众所周知,三维交互是个很吃电脑性能,精度高一点的模型动不动就几百万的点数据

靠其他脚本python或者js的三维库去做渲染是很吃力

做一个模型切割,一下子就是几百万个点的移动渲染

对于医疗行业他们的古董电脑很难带动

但是对于C++来说,得益VTK、ITK这几个三维库

即使模型点云数据庞大,也可以很轻松的搞定


2.出色的跨平台兼容

虽然C++领域还有其他GUI库,但是支持跨平台的就没几家了

Qt不仅仅自己是跨平台的库,还有QtCtreator加持

即使在不同的平台,我的开发IDE始终都一致的

降低了学习成本,不至于每个平台都要重新适应一个新环境

规范的文档资料,使解决问题也变得容易很多


3.生态系统和工具支持

不仅有丰富的Qt社区支持,基本常见的问题网上都能搜到解决案例

还有很有优秀的Qt开源库可以借鉴使用,不用重复造轮子

好用三方库可以很容易接入(这里建议用cmake去编译)

还有很多优秀的Qt大牛分享他们的资料

人多就是力量大,有一个团的后排支持

即使遇到复杂头疼的问题,也可以呼叫外援解决

不至于一些冷门库,孤立无援


加上以上种种造就Qt在桌面应用做大做强

作为一个老牌桌面开发,它的底蕴是不可忽视的

你花时间在它擅长稳定的领域深耕

远远比在它薄弱方向带来的收益更高


有什么QT开发经验分享?

建议往架构设计方向看看

多简化复杂流程的逻辑

多优化交互数据的处理

多锻炼对需求问题的抽象

不要沉迷于界面设计

这也是我想对五年前我自己所说的话

END