如何滚动到QPlainTextEdit中的指定行?

arc*_*gel 3 qt

假设我在变量ln中有一个行号.

int ln=25;
Run Code Online (Sandbox Code Playgroud)

当我将ln传递给QPlainTextEdit时,滚动条将滚动到QPlainTextEdit中的第25行.

如何实现此功能?有人可以给我一些建议吗?我会很感激

thu*_*uga 7

使用QPlaintextEdit::document得到QTextDocument.

使用QTextDocument::findBlockByLineNumber得到QTextBlock一个特定的行号.但请记住,它从第0行开始,而不是从第1行开始.

然后创建一个QTextCursor使用它QTextBlock并将其设置为您的QPlainTextEdit.

int ln=25;
QTextCursor cursor(p_textEdit->document()->findBlockByLineNumber(ln-1)); // ln-1 because line number starts from 0
p_textEdit->setTextCursor(cursor);
Run Code Online (Sandbox Code Playgroud)