QT串口助手开发3串口开发

系列文章目录

QT串口助手开发3串口开发


QT串口助手开发3

  • 系列文章目录
  • 一、UI界面程序的编写
  • 二、发送框程序编写


一、UI界面程序的编写

根据上文的未解决问题:我们打开串口按钮打开后只能选择关闭串口,所以这个是循环的过程
上文链接
所以按钮对应的槽函数首先必须判断当前串口助手是否打开了助手,closed以后要把按钮的状态恢复成打开,修改mIsOpen标志位为False

QT串口助手开发3串口开发_第1张图片

否则执行我们写的getSerialPortConfig获取位(数据位…)成功,按钮状态是打开,并且按钮要更新为关闭(并且位的下拉框要变成灰白色不再可以调位下拉框了),如果没有获取成功则按钮状态是关闭的
QT串口助手开发3串口开发_第2张图片

禁止使用下拉框就成灰白色了

QT串口助手开发3串口开发_第3张图片

代码如下:

QT串口助手开发3串口开发_第4张图片

测试下信息,加个QDebug头信息

QT串口助手开发3串口开发_第5张图片QT串口助手开发3串口开发_第6张图片

ctrl + r运行测试效果

QT串口助手开发3串口开发_第7张图片QT串口助手开发3串口开发_第8张图片

我们需要打开按钮打开后才能点击发送按钮

QT串口助手开发3串口开发_第9张图片
QT串口助手开发3串口开发_第10张图片
QT串口助手开发3串口开发_第11张图片

其实还可以直接把mIsopen填进去这样就不用思考填true或者false

QT串口助手开发3串口开发_第12张图片QT串口助手开发3串口开发_第13张图片QT串口助手开发3串口开发_第14张图片
ctrl + r 运行测试效果
当你没有打开串口的时候发送按钮是灰色的(不能发送),当你打开串口的时候,发送按钮是可以发送的
QT串口助手开发3串口开发_第15张图片QT串口助手开发3串口开发_第16张图片

二、发送框程序编写

发送按钮转到槽函数,详情槽函数可以参考文章槽函数

QT串口助手开发3串口开发_第17张图片
QT串口助手开发3串口开发_第18张图片比如TeditSend函数不会用,就再帮助文档查TeditSend函数,帮助文档使用方法参考文档添加链接描述

由于这个toPlainText()这个函数是Qstring类型,所以我们需要变更下它的函数类型为char*,再帮助文档中查看Qstring函数的用法
QT串口助手开发3串口开发_第19张图片Qstring先转换成标准的c++string,然后再用c_str转换成char*
ctrl + r 运行测试下效果
QT串口助手开发3串口开发_第20张图片
同理写接受框,COM2给COM1发送数据时,这时接收框没有反应
QT串口助手开发3串口开发_第21张图片
接收框程序写法:
平常都是再ui转到槽函数,这个是从设计界面,如果我们连接到串口,需要用代码的方式连接
connect是连接信号和槽,信号发送者是mSerialPort,发送信号Readyread,发送给槽(先自定义下)的槽
slots槽函数
QT串口助手开发3串口开发_第22张图片
ALT + ENTER选择添加定义
QT串口助手开发3串口开发_第23张图片
QT串口助手开发3串口开发_第24张图片

再写槽函数里面读取串口
当串口有数据的时候,就会发送ReadyRead这个信号,槽函数就会响应,就会读取串口,然后设置到接收文本框里面

QT串口助手开发3串口开发_第25张图片ctrl + b编译ctrl + r测试下效果
QT串口助手开发3串口开发_第26张图片一直发送都是一个hhh
因为我们之前设置的槽函数,一旦有数据就会读取并且发送到接收框,这样每次发送都是会覆盖掉前面发送的,我们不想要覆盖,所以再点开帮助文档,查看texyedit函数或者直接搜索关键字append,查看到append的槽函数,槽函数依旧是函数可以直接调用
所以把setPlaintext函数变更成append函数即可
QT串口助手开发3串口开发_第27张图片ctrl + r 运行测试效果
QT串口助手开发3串口开发_第28张图片清除功能,查看帮助文档,搜索clear,可以自行添加


END

你可能感兴趣的:(QT,qt,开发语言)