Qt___QTextEdit____操作

来源:互联网 发布:长虹网络电视有蓝牙吗 编辑:程序博客网 时间:2024/05/22 19:41

在使用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);
}