IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 对于Qt跨平台客户端开发的一些看法 -> 正文阅读

[系统运维]对于Qt跨平台客户端开发的一些看法

一、Qt跨平台开发的一点疑虑

??Qt能跨平台开发,这是大家都知道的,但是,真的做起来不是那么容易,很多公司的客户端也没也完全用跨平台框架来开发,而是在windows, macOS,linux上各搞一套,比如windows用DuiLlib、Qt、或者自己写的UI框架;macOS则用swift / oc,如果用Qt进行windows和macOS跨平台开发,是要慎重考虑的,最好windows一套代码,macOS尽量用swift/oc来做,很多东西在windows上解决方案很多,用C/C++基本都可以搞定,但是在macOS就不一定了,虽然C/C++/OC/swift可以相互调用,但是这增加了代码复杂度,也对开发人员的技术有很大的考验。

二、开发建议

??下面分享一下Qt客户端开发的一些个人建议

2.1 IDE选择

??用Qt做界面库,IDE可以用QtCreator和VS,如果不考虑跨平台,那么在windows上就用VS, 调试、项目管理也很方便,QtCreator能做的,vs也能做,而且VS和QtCreator项目可以相互转换;linux那就用QtCreator吧。另外现在比较新的vscode和clion也是可以尝试,不过主流依然是QtCreator和VS,vscode免费,但是项目配置麻烦,调试也不太方便;CLion是收费的,很少有公司用,用盗版很容易被律师函警告的,JetBrains在IDE领域基本已经通吃了,每年花费2000元就可以享有所有编程语言的ide使用权。

2.2 通用库的选择

??项目开发,必然要使用到各种库,比如日志库、网络库、线程库等。

(1) log

??如果用C++开发,log那么可以考虑glog、log4cplus、log4cpp,如果觉得个人功力深厚,也可以自己封装一个log;Qt也有第三饭log库,比如QsLog。

(2) 网络库

??用Qt的话,Qt本身支持网络开发,http、tcp、udp、ftp等都可以,如果不想用Qt网络库,那么可以用系统库,windows, linux都有自己的socket, 不过有一点不好的是,系统库可能不跨平台。如果需要和后台java/php等进行接口的调用,可以考虑QtNetwork框架,或者用libcurl,二者都可以进行get、post.

(3)线程库

??Qt对thread有支持,可以使用QThread进行开发,当然C++ 11之后,从语言层面解决了多线程得跨平台问题,可以用std::thread代替其它得线程库。

(4)图表曲线模块

??一些嵌入式,监控行业,可能会用到图标,QCharts支持各类图表,之前的QCustomPlot,QWT等也是很好的图标曲线组件,但是我要提一嘴ECharts, 这是百度开源的图表组件,这是我目前见过的最好的图表库,利用Qt web交互技术是可以使用ECharts的,然后动态绑定数据即可。

(5)编码规范

??每个公司都有自己编程规范,入职时得先了解,不然写起代码来,随便搞,那就很不协调了,有强迫症的看到,估计很不爽,必须改过来,你一改动,就会触发git冲突,对别人也是一种侵犯,这就是业内的一种现象"不要瞎该我的代码",业内比较正规的有google C++规范,华为C++编码规范等,或者更具项目需求,自定义一套规范,对于入职的新人让他们先学一学。

(6)开发流程 git follow

??git follow没得说,就当作标准来执行吧。

2.3 复杂页面设计

??像一些简单的页面,用QWidget或者Qt Designer是可以慢慢搞出来,就拿优酷界面来说
在这里插入图片描述
??优酷客户端用到了Qt/QML,标题栏和左侧栏相信有一定基础的人能做出来,首先需要把窗口边框去掉,然后自己写一个标题栏,左侧布局用QListWidget轻松实现,可以看看我的实现【教你用Qt手写优酷客户端界面】,但是中间区域呢,用QScrollArea是可以做,但是太复杂了,而且需要实时的更新,那么必然得和后端交互,那么用前端web技术应该就比较好实现,让前端去做那些视频的布局,播放解码用web技术也是可以实现的,用Qt ffmpeg之类的也可以,问题不大,下面是优酷的网页版:
在这里插入图片描述
??是不是和客户端界面很类似,这些视频窗口估计有上千个控件了,用web技术是最好的解决方案,用Qt得写到什么时候,而且用web得话,跨平台方便,在windows, macOS, 移动端直接调html,基本可以保持效果一致,而且对于播放来说,应该是类似m3u8这种文件,一个url就可以播放,解决了跨平台得麻烦。
??wps的稻壳商城,应该也是用web技术做的。
在这里插入图片描述

??Qt和web的交互现在已经做的很好了,QWenEnginView对chrome的支持很友好,可以达到cef的效果。

2.4 自适应分辨率

??在我的Qt进阶文章中有谈到关于分辨自适应问题,现在笔记本电脑都是2.2k, 2.5k, 3k乃至4k分辨率,你在公司1920*1080的显示器上开发的界面效果在别人电脑可能就不一样了,此时就需要自动的改变Qt控件的大小,图标也尽量使用svg图,而不是png,Qt本身对窗口自适应的属性也有支持,大家可以去测试看看。

2.5 跨域语言、中文乱码问题

??关于这个,得用翻译文件来做,问题不大。

2.6 exe打包技术

??安装包制作,方案很多,可以使用NSIS或者Qt原生的IFW技术。

2.6 模块划分

??小项目随便写写,一个人撸完也不是不可以,大项目呢,尽量把功能分开,能封装成dll就做程dll, 提供接口,外部调用,这样在协同开发时也方便,对于软件更新也有帮助。

2.7 软件更新

??当用户安装软件后,后续更新怎么做呢,就是怎样把服务端新的安装程序下载到用户电脑上,现在客户端技术已经是达到顶峰了,这块儿一般也是需要前端来做的,比如增量更新,在启动客户端时,检查本地版本和服务端的版本,相同的文件进行下载,不同的不下载,这一块儿我也没有深入研究,相信有更好的技术来显示。

2.8 数据埋点

??埋点这种行为,有点窃取用户隐私的做法,但实质也没什么伤害,只是让运营商更了解用户对软件的使用情况。这个一般是产品经理超滤的事情,他们说怎么做,开发就去实现。现在埋点都有服务商提供,花钱买就可以了。

三、Qt就业环境

??关于就业趋势我在之前的文章也讲了一些,虽然岗位不多,但是依然可以要口饭吃,一些大厂也有相应的岗位,例如很火的抖音,字节跳动提供了视频剪辑工具“剪映”,它就是用Qt/QML开发的,以及WPS客户端、斗鱼客户端、优酷客户端、UOS等都是用Qt开发的,Qt/MFC等windows界面开发依然是有不少岗位,但没有java python 大数据 人工智能那么多,毕竟是流量为王的时代,移动端,大数据,深度学习,数据挖掘等是大趋势,客户端开发在这大环境下能分一杯羹也是不容易的。另外比较重要的一点是C++前端和web前端有很大的区别,web前端更多的是业务展示,不涉及领域的知识,但是C++前端的工作,大部分情况下是要兼顾相关领域知识,比如做音视频,视频的显示,音视频同步等,做图片算法的,图片的展示,内存的处理等,做其它行业也是一样的,不能只关注界面的效果,相关领域的知识也要深究。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:53:55  更:2021-07-24 11:54:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 10:44:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计