首页 新闻 会员 周边 捐助

(有偿解答)lineEdit显示很多字符时,只能显示后面字符,但是我想显示前面字符怎么做如下:

0
悬赏园豆:60 [待解决问题]

下位机单片机用:sprintf(print_buff,"\r\nAPIKEY = %s\r\n\r\nOK\r\n",apikey);给上位机发送字符串,这里我用上位机Qt的 TextEdit框接收到的数据是:

APIKEY = m3Tffjl3gMtwLIAcWpe3q=gERsk=

OK
而我用lineEdit框接收到的数据总是:
=gERsk= OK
问题:
我要怎么提取”m3Tffjl3gMtwLIAcWpe3q=gERsk=“这串数据并用lineEdit框全部显示出来,请问有什么办法?

下面是我的串口接收数据 :
QByteArray data= SPort->readAll();
//实现了从本地字符集GBK到Unicode的转换
QString str = QString::fromLocal8Bit(data);

//方法1:显示在TextEdit框上
ui->TextEdit->insertPlainText(str);
//方法2:显示在lineEdit框上
ui->lineEdit->setText(str);

这问题卡已久,请好心人帮我一下呗。可以有偿奖励。

千浦千钰的主页 千浦千钰 | 初学一级 | 园豆:142
提问于:2019-12-26 17:19
< >
分享
所有回答(2)
0

调试啊,你觉得哪里可能出问题就看它出没出问题嘛

jakio6 | 园豆:1325 (小虾三级) | 2019-12-27 10:32

调了,我个人认为原因有如下:因为字符太多导致lineEdit分多行显示,每次显示都是最后一行,前面几行都被覆盖显示了,现在想朋友们能不吝啬提供思路解决这个问题。因为我要选择显示前面的字符串

支持(0) 反对(0) 千浦千钰 | 园豆:142 (初学一级) | 2019-12-27 11:35

@千浦千钰: 那直接从字符串里头提取要显示的部分不就好了么

支持(0) 反对(0) jakio6 | 园豆:1325 (小虾三级) | 2019-12-27 12:07

@jakio6: 这个我做了试验,能提取的总是最后一行其中的字符串而已,肯本没操作到前面几行。我用一个数组装端口AllRead()读来的数据总是没有数据。不知道串口发送来的数据把数据分隔到buffer 里了还是怎么了,看有些网友说读可能不是一次性读完,而是多线程的

支持(0) 反对(0) 千浦千钰 | 园豆:142 (初学一级) | 2019-12-27 13:52

@千浦千钰: ?不是说有个方法能显示出数据了吗,接收到的数据肯定都已经在字符串里了啊,和多线程有什么关系

支持(0) 反对(0) jakio6 | 园豆:1325 (小虾三级) | 2019-12-27 14:04
0
  1. 检查下是不是\r\n\r\n这些换行符被当作特殊字符了,
  2. lineEdit看意思是只显示一行,很可能没显示全数据
大志若愚 | 园豆:2138 (老鸟四级) | 2020-01-13 18:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册