如何在QPlainTextEdit中更改Text块的背景

时间:2013-03-04 05:39:06

标签: c++ qt

鉴于从QPlainTextEdit检索到QTextBlock,我想更改该块中文本的背景。我知道如何在textCursor()的帮助下做到这一点,但在这种情况下textCursor可能在其他地方。我逐行遍历文件文本,并希望更改当前行的背景,而不管光标位置如何。如果可以的话,请告诉我。

1 个答案:

答案 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);