知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。
文章目录
- 1. 获取串口名字
- 1.1 文件 `GUI.ui`
- 1.2 文件 `GUI.h`
- 1.3 文件 `GUI.cpp`
- 潜在 Bug:LN2019
- 2. 配置串口连接
- 2.1 文件 `GUI.ui`
- 2.2 文件 `GUI.h`
- 2.3 文件 `GUI.cpp`
- 潜在Bug:按下按钮无反应
- 3. 配置串口连接
- 3.1 文件 `GUI.ui`
- 3.2 文件 `GUI.h`
- 3.3 文件 `GUI.cpp`
- Ref
我要使用的功能比较简单,主要包含扫描串口、打开串口、发送数据、接收数据、暂停按钮、停止按钮,因此接下里将围绕这几个功能依次更新。
我的工程项目名字叫 “GUI”。
首先展示下已经创建后的项目截图,主要包括 GUI.ui
、GUI.h
、GUI.cpp
这三个文件。
之后的每个功能,也都将围绕这三个地方进行添加和修改。
1. 获取串口名字
1.1 文件 GUI.ui
UI 界面中添加了一个 Combo Box 组合框,等下将扫描出来的串口号,添加到这个组合框中。
1.2 文件 GUI.h
在 GUI.h
文件中,添加需要用到的头文件,函数 getPortNameList()
,变量名。
1.3 文件 GUI.cpp
在 GUI.cpp
文件中,编写函数 getPortNameList()
的具体功能。
同时,别忘了将获取到的端口号变量 m_serialPortName
,添加到 comboBoxPortNumber
这个组合框中。
运行后,最终的效果如下:
潜在 Bug:LN2019
在这过程中,可能会遇到一个 LN2019 的 bug,可以参考这个教程解决:【Visual Studio】报错 LNK2019,使用 C++ 语言,配合 Qt 开发串口通信界面。
2. 配置串口连接
这一步添加一个开始按钮 Push Button 和一个停止按钮 Push Button,当开始按钮按下时,我们让串口接通,当停止按钮按下时,我们关闭串口。
注意,在串口接通时,是需要选择配置一些串口传输时的必需信息的,比如波特率,数据位等。
但这我要做的项目中,用户需要操作的越少越好。因此,我这里都将所有信息内置到项目中,不再显露出来。
为了进一步观察状态,我们再添加一个文本浏览器 Text Browser,用来显示串口是否打开的状态。
2.1 文件 GUI.ui
2.2 文件 GUI.h
2.3 文件 GUI.cpp
最终运行效果如下:
潜在Bug:按下按钮无反应
如果你在编写按钮的事件函数时,没有使用和我一样的名字,那么当你按下按钮时,你编写的事件触发函数不会得到响应。这是因为你没有建立函数的按钮的信号连接。详情请参考这篇文章:【Visual Studio】开发 Qt 时右键没有自动添加 slots 槽的功能,使用 C++ 语言,配合 Qt 开发串口通信界面。
3. 配置串口连接
这一步主要用来接收串口发送过来的信息并显示出来。我们添加一个文本浏览器 Text Browser,用来显示串口接收到的内容。
3.1 文件 GUI.ui
3.2 文件 GUI.h
3.3 文件 GUI.cpp
最终运行效果如下:
Ref
- Visual Studio如何使用Qt开发桌面软件?
- Qt 实现多线程的串口通信