Как выделить строку текста в QTextEdit

Я студент-программист, в настоящее время разрабатываю приложение для работы с использованием Qt4. Я создаю редактор уравнений, и у меня возникают проблемы при попытке выделить строку в моем QTextEdit поле. У меня есть функция, которая анализирует строку QTextEdit и возвращает начальное и конечное целое число, где находится ошибка. Моя оригинальная стратегия заключалась в том, чтобы использовать теги HTML в этих двух точках, чтобы выделить ошибку. К сожалению, существует проблема с тегами HTML и синтаксисом уравнения.

Мне кажется, что мне нужна стратегия, основанная на библиотеке Qt для установки цвета фона между этими двумя индексами. Я начал искать QSyntaxHighlighter; однако я думаю, что это больше для выделения с использованием предопределенного набора законов, а не просто для того, чтобы что-то перехватить между & б и настройку цвета фона. Если я могу использовать подсветку синтаксиса, пожалуйста, предоставьте мне пример или ссылку, так как я уже прочитал документацию и ничего не нашел.

Спасибо за любую помощь заранее!

Постскриптум Просто чтобы подчеркнуть проблемы совместимости с HTML; HTML становится проблематичным из-за нескольких < и> используемые знаки.

5

Решение

Ты можешь использовать QTextCursor а также QTextCharFormat для этого:

QTextEdit *edit = new QTextEdit;
...
int begin = ...
int end = ...
...

QTextCharFormat fmt;
fmt.setBackground(Qt::yellow);

QTextCursor cursor(edit->document());
cursor.setPosition(begin, QTextCursor::MoveAnchor);
cursor.setPosition(end, QTextCursor::KeepAnchor);
cursor.setCharFormat(fmt);
10

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]