image

界面加通讯类Qt软件编写文件管理等经验总结


writerlIcht                      emaillIcht.gzl@gmail.com                 date:  2020.10.18

 

 

 

24

         第一次用Qt做软件项目,也相当于第一次用C++做项目,做界面加通信类的软件项目,其中学习到的经验记录。通过这次学习,对软件编程有了基础的一点了解,其中需要的更多的是细心与谨慎,编程习惯的养成也应该十分注重,这很直接反映了一个程序员给人印象的好坏。以下是通过这次项目的一些总结:

一、项目文件管理

        工程管理的规范可为开发以及维护和调试提供更大的效率,也方便自己记忆与维护。以下是Qt工程目录管理普通的结构:

        其中projectname为项目文件夹,该文件下包含各个文件夹和.pro项目文件。各个文件夹的功能为:

1、bin:用于存放该项目的可执行文件,在项目构建是指定可执行文件生成目录在该bin目录下。如有配置文件和资源文件也应当后期移动到该文件下,方便直接运行软件。

2、conf:用于存放软件运行的配置文件,其中,配置文件较多可分配为多个配置文件,思路为,用一个配置文件读取其他配置文件的路径,方便配置文件路径的管理。如通讯ip写一个配置文件a,读取的文本写一个配置文件b,用另一个配置文件来保存a、b两个配置文件的路径。在程序里面直接读取这两个路径找到a、b两个配置文件。这样可在软件后续配置的过程中方便改动,不用频繁修改源码编译。

3、inc:存放.h头文件和库文件

4、qrc:存放资源文件,文本、图片、视频等

5、src:存放.cpp文件

6、tmp:工程编译时生成的Debug、Release以及Profile版本文件,应选择生成在该目录下

7、ui:存放.ui界面文件

 

二、线程问题

        编写带有通讯类的软件应当注意分配线程的问题,通讯的处理应当写入子线程中,主线程中不应当有任何阻塞的函数。其中界面与通讯类的软件应当设计为:主线程为主界面,以及界面改动的一些函数。子线程为通讯以及数据处理的函数,得到数据后传递给主线程进行界面的刷新。

三、复用性、框架化、易于套用

        在编写一个工程时,首先应仔细考虑其整体的结构,自己要怎样实现,从面相对象的思想上出发,先设计需要的对象,越少越好。再仔细将功能细化到每个对象。另外在实现对象的时候,应该注意封装完整,考虑别的工程调用时功能的完整性。尽把功能封装完整。可多利用函数重载丰富功能。

四、断点调试,调试思想

        Debug时多利用断点调试,程序不会骗人,自己核对与断点寻找出现bug 的代码段。一步一步找出问题。

五、注意指针的使用规范

        注意指针的使用规范,注意指针的创建、赋值、使用方法及释放。

六、配置文件,参数化

        注重实用配置文件,将代码中的变量参数化,极大的方便了用户的使用以及后期修改调试代码,以及软件最后的部署。很重要!

七、解包发包,使用结构体的时候注意

        在使用字节数组解包与发包时,应当注意数据的大段小段(字节序)的问题,另外,在结构体创建的时候注意地址补空的问题,应当让系统不自动补空,在结构体定义时加上以下代码:

八、共同开发时考虑合代码便利性

        多人开发一个软件时,分配任务时候应该分模块,每个人实现完整的模块,并考虑到合代码时候的效率与便利性,注意预留接口。