在使用QTextEdit来显示 一些数据时,如收到的数据包,我的情况是这样:
我大概每一毫秒收到一个包,然后显示在QTextEdit上面,CPU是嵌入式的S3C6410,这样如果时间长的话,QTextEdit会把整个Qt程序沾满而死机。
我的显示方法最后折中为:只显示最后5个数据包,如下:
void CTextEdit::addText(const QString &str)
{
//这里只显示最后的5个
// QTextCursor cursor = this->textCursor(); //实现自动翻滚
// cursor.movePosition(QTextCursor::End);
// this->setTextCursor(cursor);
// QString text = this->toPlainText();
QString text;
stringList<<str;
int len=stringList.length();
if(len<5)
{
for(int i=0;i<len;i++)
{
text+=stringList.at(i);
text+=QString("\n");
}
}
else
{
text+=stringList.at(len-5);
text+=QString("\n");
text+=stringList.at(len-4);
text+=QString("\n");
text+=stringList.at(len-3);
text+=QString("\n");
text+=stringList.at(len-2);
text+=QString("\n");
text+=stringList.at(len-1);
text+=QString("\n");
}
this->setText(text);
}