开发聊天程序或者类似于状态监控的程序有时候要用到编辑框的自动滚屏。
写了一个函数
//编辑框自动滚屏,每次新增一行或多行字符调用一次
void autoScrollTextEdit(QTextEdit *textEdit,QString &text,QString &add_text)
{
//添加行字符并刷新编辑框
text+=add_text+"\n";
textEdit->setText(text);
//保持编辑器在光标最后一行
QTextCursor cursor=textEdit->textCursor();
cursor.movePosition(QTextCursor::End);
textEdit->setTextCursor(cursor);
//如果超过一定行数清空一下
if(textEdit->document()->lineCount()>20)
{
text.clear();
textEdit->clear();
}
}
把这个函数放在定时器的更新函数或者其他场合调用就可以了