Qt: как сделать выделение цветом слова в тексте в виджете QLineEdit?

Добрый день.

Возникла необходимость выделить цветом слово в тексте средствами Qt. В частности в виджете QLineEdit. На разных форумах советуют выделять текст html тегами, например: текст. Но минус такого подхода в том, что, например, QLineEdit не поддерживает html разметку.

Как средствами Qt выделить цветом именно слово в тексте, а не весь текст?
  • Вопрос задан
  • 4485 просмотров
Пригласить эксперта
Ответы на вопрос 3
FluffyMan
@FluffyMan Автор вопроса
парсер съел разметку html в примере, котором я приводил.
Ответ написан
Комментировать
FluffyMan
@FluffyMan Автор вопроса
Нет, пользователь не вводит текст. Уже подумываю по поводу QLabel. Наверное с его помощью и решу задачу
Ответ написан
Комментировать
Решал подобную задачу.

void setLineEditTextFormat(QLineEdit* lineEdit, const QList& formats)
{
if(!lineEdit)
return;

QList attributes;
foreach(const QTextLayout::FormatRange& fr, formats)
{
QInputMethodEvent::AttributeType type = QInputMethodEvent::TextFormat;
int start = fr.start - lineEdit->cursorPosition();
int length = fr.length;
QVariant value = fr.format;
attributes.append(QInputMethodEvent::Attribute(type, start, length, value));
}
QInputMethodEvent event(QString(), attributes);
QCoreApplication::sendEvent(lineEdit, &event);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы