自动滚动效果:
不刷新效果:
QTextBrowser插入文本的方式有三种:
insertHtml:用html方式插入文本,不会自动换行,不会自动刷新光标
insertPlainText:纯文本方式插入,不会自动换行,也不会自动刷新光标
append:在新行插入文本,支持html语言,自动刷新光标
所以要做到内容是否自动滚动,可以选择insertHtml方式,然后手动控制内容显示滚动或者不滚动,参考代码:
ui.ser_mess_browser->insertHtml(QString("< font color = \"#00BFFF\">RECV: %1</font><br>").arg(data_s));
if (ui.auto_fresh_falg->isChecked())
{
ui.ser_mess_browser->moveCursor(ui.ser_mess_browser->textCursor().End);
}
ser_mess_browser是QTextBrowser的名称,插入的内容根据自己的需要改变,需要注意的是插入html需要手动换行,使用的是<br>标签
auto_fresh_falg是上图中“自动刷新屏幕”的选择框(QCheckBox),通过检查他的状态,判断是否需要控制显示内容滚动