Добрый день, коллеги! Нужно выделить несколько участков в тексте разными цветами, делаю так (хочу выделить участок с 5 по 12 символ и с 15 по 19):
| Код | QTextEdit *te_context = new QTextEdit(text);
QTextCursor cursor1 = te_context->textCursor();
cursor1.movePosition(QTextCursor::Right, QTextCursor::MoveAnchor, 5); cursor1.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor, 12);
QTextCharFormat charFormat1; charFormat1.setBackground(Qt::green); cursor1.setCharFormat(charFormat1);
te_context->setTextCursor(cursor1);
QTextCursor cursor2 = te_context->textCursor();
cursor1.movePosition(QTextCursor::Right, QTextCursor::MoveAnchor, 15); cursor1.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor, 19);
QTextCharFormat charFormat2; charFormat2.setBackground(Qt::blue); cursor1.setCharFormat(charFormat2);
te_context->setTextCursor(cursor2);
te_context->moveCursor(QTextCursor::End);
|
В итоге получается, что куски сливаются, т.е. закрашивается синим и пространство между 12 и 15 символами. Не могу понять почему? И правильно ли я делаю, что использую 2 курсора или можно проще? А вдруг нужно было бы выделить различными цветами 1000 кусков в тексте? Спасибо. |