我有一个QPlainTextEdit
,我必须以两种方式填充它。
当我想在末尾添加文本时,我可以非常简单地使用appendPlainText()
提供的功能来做到这一点。当垂直滚动条达到下边界时,我会这样做,如果用户在此之后滚动,那么我会附加新文本。这执行得非常顺利。
但是我想做的是当用户向上滚动并且滚动条达到上限时,如果用户在此之后滚动(向上),我想在它前面附加文本。但问题是没有这样的函数prependPlainText(),因此,我首先从我的QPlainTextEdit
中获取明文,这是一个QString
,使用QString
的prepend
,然后将新文本附加到QPlainTextEdit
。但问题是滚动条在我向QPlainTextEdit
追加文本后立即向下,我想要的是将滚动条保持在上限。 就像滚动条在前面的场景中保持在下边界一样。
结合这个和那个 id 去
ui->qpte->document()->setPlainText(text + "n" + ui->qpte->toPlainText());
qpte
是QPlainTextEdit
的名称,text
新文本的QString
。ui
是指向您的UI::MainWindow
左右QWidget
的指针。
不确定这是否是性能明智的(当然不能很好地扩展)
如果你打算使用x29a的方法,你可以考虑像这样使用它:
ui->qpte->document()->setPlainText(text + "n" + ui->qpte->toHtml());
这样您以前的格式就会被丢弃。
或者,也许最好像这样使用此处建议的内容:
QTextCursor cursor = QTextCursor(ui->qpte->document());
cursor.setPosition(0);
ui->qpte->setTextCursor(cursor);
ui->qpte->insertHtml(text);