最近在做低功耗蓝牙开发,为了方便,自己用QT做了个串口调试助手,在用QT的文本控件如textEdit或lineEdit时,发现输入换行符"\n"不能被识别,经过反复验证,换行符"\n"被识别成了两个字符"“和"n”,打印出来的结果就很明显,如输入"at+link?\n",打印结果是"at+link?\n"。由于是QT默认的设定,只能另寻解决方法了,最后只能用替换的方法解决了。
如下,设计一个pushButto和textEdit,按下pushButton后,运行如下代码:
QString Sendtext;
Sendtext=ui->textEdit->toPlainText();
ui->textEdit->append(Sendtext);
//该函数会把"\"识别为普通符号而不是转义符,因此"\r","\n"无效,需做如下处理
Sendtext.replace("\\r","\r");
Sendtext.replace("\\n","\n");
ui->textEdit->append(Sendtext);
运行后,textEdit输入"at+link?\n",然后textEdit输出如下图
at+link?\n
at+link?
//换行
问题解决!
本文讲述了开发者在使用QT进行低功耗蓝牙开发时,遇到textEdit和lineEdit无法正确识别换行符
的问题,通过replace函数将
替换为
解决了这一问题。
2686

被折叠的 条评论
为什么被折叠?



