QT中TextBrowser插入文本后,内容显示自动滚动与不滚动控制实现

自动滚动效果:

不刷新效果:

 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),通过检查他的状态,判断是否需要控制显示内容滚动