首页| 论坛| 消息

标题:QTextEditappend方法大神求助
作者:vain2017
日期:2018-11-30 10:42
内容:

在自己做一个串口助手的时候发现了这样一个现象。每次我接收到串口消息后会调用textEdit的append方法,把新的数据文本添加到文本框。但是这种方法会自动添加新行。比如我的文本框现有内容为“hello,”,再次调用appen(“world”)后,textEdit中的内容会是 "hello,\nworld"而不是"hello,world"。
我尝试了用一些方法解决这个问题,比如insert方法,但是在串口数据量大的时候,这个方法会使得程序卡顿(doenvents也没用),但是append方法却一点也不卡顿。我又尝试将新添加的文本加个退格键‘\b'再调用append方法,发现\b并没有起到退格作用,反而是变成了空格!?
有没有大神能帮忙解释下为什么退格符会变成空格?还有调用append方法会自动附加新行的问题该怎么解决?都快气哭了。。。。。。


#1 [九重水 11-30 11:33]
append是增加一个段落。自己看看append函数的作用。你用错函数了。
你要用insertPlainText函数或相关函数。
#2 [never_forget 12-01 09:31]
你也可以先取出来,拼接,清除,然后 append() ;就是比较傻 ~
#3 回 never_forget 的帖子 [vain2017 12-01 10:31]
never_forget:你也可以先取出来,拼接,清除,然后 append() ;就是比较傻 ~(2018-12-01 09:31)
嗯,这个我也试过了,傻点当然没问题,问题是这种方法也会卡,CPU占用率会飙到很高。
#4 回 九重水 的帖子 [vain2017 12-01 10:32]
九重水:append是增加一个段落。自己看看append函数的作用。你用错函数了。
你要用insertPlainText函数或相关函数。(2018-11-30 11:33)
嗯,但是其他的函数都很卡。。。那么还有一个问题,为什么我输出退格符会变成空格呢?
#5 [笑颜 12-01 12:43]
你可以通过伪造输入事件的方法来添加内容。这种方法,textEdit不能是只读的。
具体代码:
QInputMethodEvent *event = new QInputMethodEvent;
event->setCommitString(data);
qApp->postEvent(ui->textEdit, event);

<< 1 2 3 >> (1/4)

回复 发表
主题 版块