Имеется объект textArea - представитель класса QTextEdit.
Я пытаюсь сделать из выделенного фрагмента HTML-ссылку (URL ссылки в переменной refereceUrl):
// Устанавливается текст ссылки
QTextCharFormat charFormat;
charFormat.setAnchorHref(refereceUrl);
// Если текст ссылки задан
if(refereceUrl.length()>0)
{
charFormat.setAnchor(true);
textArea->textCursor().mergeCharFormat(charFormat);
}
else
{
// Иначе текст ссылки пустой и ссылку надо убрать
charFormat.setAnchor(false);
textArea->textCursor().setCharFormat(charFormat);
}
Ссылка устанавливается, но визуально текст не меняется (выделенный фрагмент не становится синим с подчеркиванием).
Единственный способ увидеть созданную ссылку - это взять текст textArea.html и снова его установить через textArea.setHtml(html). Но это я считаю слишком дорогостоящим решением.
Самое интересное, что убирание ссылки работает правильно (т. е. если устанавливаемая ссылка пустая, то синий цвет и подчеркивание убираются). А именно установка ссылки визуально работает криво - не появляется синего цвета и подчеркивания.
Я грешил на разницу между mergeCharFormat() и setCharFormat(), но толку никакого, что ни пиши, ссылка визуально не отображается.