鉴于从QPlainTextEdit检索到QTextBlock,我想更改该块中文本的背景。我知道如何在textCursor()的帮助下做到这一点,但在这种情况下textCursor可能在其他地方。我逐行遍历文件文本,并希望更改当前行的背景,而不管光标位置如何。如果可以的话,请告诉我。
答案 0 :(得分:1)
将光标移动到要标记的行有什么问题? 如果需要,可以保存旧的光标位置。
int oldPos = edit->textCursor().position();
QTextCursor cursor = edit->textCursor();
int oldPos = cursor.position();
int linePos = // get the line position
cursor.setPosition(linePos);
cursor.select(QTextCursor::LineUnderCursor);
cursor.setCharFormat(format);
cursor.setPosition(oldPos);
edit->setTextCursor(cursor);