Qt和C++ |多工程、多项目、多模块

学生开发思维到工作开发思维的跨越,就看你会不会建多项目

名词解释

首先,本篇所说的多工程、多项目、多模块的概念解释,都是在Qt creator而言。

多模块

字母意思,在Qt中,用pri文件打包一起的就视为一个模块。
当你的代码文件越来越多时,很多.h和.cpp文件堆在一起,慢慢地就。
例如,界面有几十个窗口,每个窗口要有自己的.h和.cpp,那就会有很多文件堆在一起。我把每个窗口当做一个模块,用pri文件包含。就不会显得杂乱。
在这里插入图片描述

多项目

项目:就是我们打开Qt creator,让你选择的模板,这一个个模板,就一个个项目。如下图:
在这里插入图片描述

而多项目,就是多个项目在一起。(没错,就是这么简单,但我琢磨了许久,就因为思维的没转变)
注意:一个程序只能有一个main,所以,即便说多项目,其实就是一个application+若干个Library

多工程

这个层级,代码量什么的已经不得了,上升到架构了。

以上仅个人的理解。

创建多项目

1. 首先创建一个子目录项目(类似文件夹)

在这里插入图片描述

创建成功之后的结果,如下图所示。
在这里插入图片描述

2. 创建子项目

在创建完子项目目录后,会弹出让你继续创建项目,可以创,也可以关掉之后创。
或者,右键点击项目->新子项目…,后面都一样了。
前面讲了,多项目,其实就是一个application+若干个Library
在这里插入图片描述

这里选着Qt Widgets Application创建,结果如下。
在这里插入图片描述

然后选择库,这里选C++ Library。一路下步,不纠结!
在这里插入图片描述

创建完后的结果。
在这里插入图片描述

好,至此,Application和Library都有了。下面关键的来了

3. 添加库

右键UI->添加库。都是点击下一步,不纠结!在UI.pro文件,会出现如下代码
在这里插入图片描述

4.使用库

我们点击logic.cpp,你会发现类名前多了一个标识符LOGIC_EXPORT。代表这个类提供给外部使用。由“库名_EXPORT”形式组成。
在这里插入图片描述

当你在库能添加新的.h和.cpp文件,需要给类名加上这个标识符LOGIC_EXPORT,以及添加头文件#include “Logic_global.h”
在UI里使用库里的函数,跟单项目使用一样的。引入头文件即可。
在这里插入图片描述

其实就是类名前多了个标识符,表明这个类提供给外部使用,如果仅在库内使用,就不加即可。

别看内容少,其实就内样,请你实际操作一遍,就明白了。

其他

不纠结的地方,是要求有前置基础知识。

  • 代码的预处理、编译、链接
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Qt是一款非常优秀的跨平台应用程序开发框架,它提供了丰富的组件和工具,其中包括串口通信模块,可以方便地实现串口的读写操作。在Qt官方文档中,有关于串口通信模块的文档,用户可以根据文档中的说明,将其集成到自己的Qt项目中。 但是,如果用户想要使用Qt自带的串口通信模块进行开发,需要编写一个完整的工程。在这个工程中,用户需要通过Qt Creator创建一个新的Qt项目,并添加串口通信模块的相关头文件。接下来,用户需要编写相应的代码,以实现串口的初始化、读取和写入操作。 在串口初始化的过程中,用户需要指定串口的参数,例如波特率、数据位、校验位和停止位等,并打开串口。在串口读取的过程中,可以使用Qt提供的QSerialPort类中的readyRead()信号来读取串口数据。而在串口写入的过程中,用户可以使用QSerialPort类中的write()函数来发送数据给串口外设。 需要注意的是,在进行串口通信时,用户要根据实际情况进行错误处理。例如,如果初次打开串口失败,则需要提醒用户进行检查,确保串口是否被其他程序占用,或者是否连接错误等。 总之,利用Qt自带的串口通信模块进行开发,是一种非常方便、快捷的方式,可以大大减轻用户的编程难度,优化开发效率。 ### 回答2: Qt是一个跨平台的C++应用程序开发框架,其支持串口通信。Qt提供了一个十分方便的串口通信模块,可以很轻松地实现应用程序的串口通信功能。 下面是关于qt自带的串口通信模块完整工程的介绍: 首先,在Qt Creator中创建一个新的Qt Widgets应用程序项目。 然后,在mainwindow.cpp文件中引入QSerialPort头文件,进行串口通信相关的操作。在构造函数中使用QComboBox和QPushButton创建下拉菜单和按钮,用于选择串口号和打开串口。同时,还可以设置串口通信的波特率、数据位、校验位、停止位等参数。 接下来,在按钮的槽函数中,进行串口打开、关闭及数据的读取和写入。使用QByteArray和QTextStream等类处理串口数据,以实现数据的收发功能。同时,还可以通过QTimer定时发送数据,或者通过QThread创建新的线程来处理串口通信。 最后,在窗口关闭时,及时释放串口资源和关闭线程,可以避免程序出现不必要的错误。 总体来说,Qt自带的串口通信模块完整工程非常方便实用,通过简单的代码编写,就可以实现串口通信的功能。使用该模块,可以快速构建串口通信应用程序,这对于需要与外部硬件设备进行通信的应用场景非常有用。 ### 回答3: qt自带的串口通信模块完整工程包含了实现串口通信的源码和界面设计。该工程可以用于在qt平台下实现串口通信功能。该工程包含以下文件: 1. main.cpp: 包含了Qt程序的基本结构,并且启动了窗口。 2. serialport.h 和serialport.cpp: 定义了串口通信类SerialPort,其中包含了各种串口通信的成员函数,如打开串口、关闭串口、发送数据、接收数据等等。 3. mainwindow.h 和mainwindow.cpp: 定义了窗口类MainWindow,通过调用SerialPort类的成员函数实现串口通信的各个功能。MainWindow类建立了一个界面,用于与用户交互,包括显示接收到的数据、设置串口参数、发送数据等。 4. mainwindow.ui: 界面设计文件,主要包含MainWindow类的界面设计,可以使用Qt Designer进行编辑。 该工程使用Qt Creator进行管理,可以直接打开进行编译。使用该工程可以方便地实现串口通信功能,并且已经实现了基本的错误处理,提高了代码的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值