VS + Qt实现上位机串口通信:简单界面3

从textedit处接受文本内容并发送,但在实际应用中出现了换行符不显示的问题。

搜了很多博客发现可能还是和字符编码形式有关。

我现在采用的是这个方法:

QStringList text = ui.textEdit_2->toPlainText().split("\n");
			for (int i = 0; i < text.size(); i++) {
				serial.write(text.at(i).toLocal8Bit() + "\r\n");
			}

第一行是读取textEdit中输入的文本并且以\n为标志分割字符串。
后面的循环是将刚才分割的字符串按行输出,在每一行的后面加上换行符。

我试了很多种组合,首先第一行我最开始分割的是\r\n,但发现上下两行并未分开,所以就怀疑qt textedit中换行代表的是\n。果然改成\n就可以了。

第二个循环内部的写函数,一开始我没加转换tolocal8bit,使用write的时候会报错。且后面必须加上+"\r\n"。

所以这里面可以思考的点有这些:
textedit文本以\n换行,直接tolocal8bit不能转换为本机的换行符,故而不显示。
以\n分离字符串之后,不加\r\n也不显示换行,这说明分离字符串会将分割的那个判断标志去除,所以要加上。
明白这两点,从textedit按行读取文本就不是难事了。
下面是我的演示结果。
在这里插入图片描述源代码程序我已经上传到我的资源里了,有兴趣可以看一下,不过我这个系列的博文写的基本就是我思考的全部过程了,跟着看其实也不需要看源码的。

QT5上位机中进行串口通信,首先需要下载QT并安装。你可以选择从国内镜像网站下载,也可以从官方网站下载。这里提供一些参考链接,你可以根据自己的需求选择合适的下载方式。同时,QT中提供了QSerialPortInfo类来获取串口信息。你可以使用get_portinfo()函数来获取当前设备的所有串口信息,并将可用的串口端口号添加到相应的下拉菜单中。在代码中,你需要包含<QtSerialPort/QtSerialPort>头文件来访问串口功能以及获取系统中存在的串口信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [QT上位机串口通信工具实现之概述篇](https://blog.csdn.net/qq_43614246/article/details/123064123)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [VS + Qt实现上位机串口通信简单界面](https://blog.csdn.net/qq_43104187/article/details/107675293)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值