Я пытаюсь выделить все строки, найденные в виджете 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);
Ответ 1 · рейтинг 4 · Arnold Spence
Обычно полезно предоставить немного больше подробностей о том, что не работает :)
- Какой текст вы пробовали в
QPlainTextEdit?
- Что вы используете для
key?
- Можете пояснить, что находит
find при запуске с текстом, указанным в первых двух пунктах выше?
- Вы на самом деле получаете список дополнительных вариантов?
- Единственное, что не работает, это отсутствие видимой подсветки?
Я попробовал ваш код, и он, кажется, правильно нашел все экземпляры текста. Проблема, похоже, в том, что вы на самом деле не устанавливаете никаких значений для format члена extra. После того, как вы установили extra.cursor, попробуйте установить extra.format.fontUnderline(true);, просто чтобы посмотреть, будет ли это иметь какой-либо эффект.