学编程也有将近两年的时间了,终于有机会接触到编程实际的项目。这次项目的目的是设计一个上位机界面,界面中包含串口通讯,TCP通讯,网口相机的通讯,数据库的处理,界面的整理,等等。可以算得上是对我以往学习的一个总结,我原本的目的也是将三年所学全都编写进入这个程序之中,对了,程序之中还包括图像处理,需要调用opencv库,Halcon库,进行一些简单的图像处理工作,下面记录一下,我如何开始进行上位机界面编写的。

刚开始的时候,我首先看的是《Qt5开发及实例(第3版)》,由于我的时间比较紧,没能完整的看完整本书的各个章节。这里还是提醒各位看官,如果自己时间充裕,能静的下心,那么把这本书看完再进行Qt5界面开发工作,肯定能对Qt5有一个很全面的了解,但对于我来说,时间太紧,而且自己最近又沉不下心一点一点的看书,所以虽然也花了一些时间看书,但是效果不好,网上也有一个比较好的教程系列,叫做《Qt学习之路2》我也看过一些,内容也是很好的,可以作为初学者入门的选择。最终,主要支持我Qt5基础的还是视频教程,在B站上找到了一个讲解Qt5的,讲的很详细,这里也记录下来。看视频和自己看书还有一个不同,《Qt5开发及实例》中,都是通过手动编写的方式来制作上位机界面的,但是,我更想在设计师界面中直接对控件进行拖拉,这里通过视频教程进行学习的话就会有更好的效果:

Qt5入门:

书籍:

《Qt5开发及实例(第3版)》

网页文字资源:

Qt学习之路2:https://www.devbean/2012/08/qt-study-road-2-catelog/

视频资源:

B站教程:qt入门实践:https://www.bilibili/video/av30776500

在入门基础都看完以后,就可以开始进行界面的编写了。这里大家也可以学习我的开始方式,由于我的项目中需要涉及串口通信,创建TCP服务端进行通讯,调用网口相机SDK进行图像采集等,第一次写就涉及这么多的部分让我很难把控,虽然各个部分都能找到参考的东西,但是对所有内容的集成成为了我的主要的难题。所以我的最开始就是找一种合适的方式,使得我能通过一个Widget,调用其它的Widget。最终,我找到了QStackWidget,堆栈窗口可以放入很多Widget,并且很方便显示。

由于我和大家一样,也是通过自学编程,自学Qt等等吧,对于软件工程的知识没有什么积淀。因此,我的整个思考过程可能会给像我这样的初学者一定的参考意义。如果想快速开发一款类似我这样的上位机界面,可以参考我的思想历程。但是,我所做所想毕竟还是没有形成体系,如果想更深入的研究,还是需要学习软件工程专业相关系统模式等知识。

以上就是我在WIn10系统下,通过Qt编写的上位机界面,实现了Opencv、Halcon、工业相机SDK、人脸识别包、串口通信、Npcap抓包、简单的数据库管理。只是简单的实现了项目中所有的要求,还有很多可以开发改进的地方,不过我已经进入研究生三年级,马上就要面临毕业,后续也是去做电气工程师,不知道还有没有机会写程序,已经没有时间再对软件进行完善了。

这里我把我做这个界面的过程写下来,这里我尽可能做到详细,把所有还记得的问题都写下来,我也会重新做一遍,我的目标是大家按照我写的这个教程,能够把我写的上位机界面重现,这样,我也不枉我花了三个月学习写这个软件了。之前觉得写软件会很有成就感,在软件里写很多技术会觉得很牛逼,用一些巧妙的方式实现一些功能会感叹自己智商报表,后来写了一段时间会感觉,只是自己一个人自嗨还是差了点什么,所以,就把这个过程给大家展现出来吧,在最后一节的时候我也会把软件的整个工程分享给大家,大家可以尽情下载,使用。

一、使用Qt5.8.0编写上位机界面--Qt安装与环境配置

二、使用Qt5.8.0编写上位机界面--Qt中Pro文件配置-如何调用(Opnecv、Hlacon、Npcap等)

三、使用Qt5.8.0编写上位机界面--Qt相机调用(基于QCmamera、基于相机SDK)

四、使用Qt5.8.0编写上位机界面--Qt中TCP通信(客户端、服务器创建于监听)

五、使用Qt5.8.0编写上位机界面--Qt中数据库调用(Sqlite的基本使用)

六、使用Qt5.8.0编写上位机界面--Qt串口通讯(RS485转串口)

七、使用Qt5.8.0编写上位机界面--Qt调用Npcap实现抓包

八、使用Qt5.8.0编写上位机界面--Qt如何将所有界面整合

九、使用Qt5.8.0编写上位机界面--最终成果展示

更多推荐

使用Qt5.8.0编写上位机界面