我正在尝试突出显示QPlainTextEdit小部件中找到的所有字符串,但find()会 只返回第一个结果。以下代码没有用,为什么?
(textview是一个派生自QPlainTextEdit的类)
请不要让我使用QSyntaxHighlighter来设置颜色,这是不同的。
QList<QTextEdit::ExtraSelection> extraSelections;
textview->moveCursor(QTextCursor::Start);
while ( textview->find(key) )
{
QTextEdit::ExtraSelection extra;
extra.cursor = textview->textCursor();
extraSelections.append(extra);
}
textview->setExtraSelections(extraSelections);
答案 0 :(得分:4)
提供更多关于什么不起作用的细节通常是好的:)
QPlainTextEdit
?key
使用了什么?find
在使用上面前两项中指定的文字运行时发现的内容?我尝试了您的代码,它似乎正确地找到了所有文本实例。问题似乎是您实际上没有为format
的{{1}}成员设置任何值。设置extra
后,请尝试设置extra.cursor
,看看它是否有效。