Добавить пользовательское свойство класса HTML в выбранный блок в QTextEdit

Я не новичок в Qt, но не могу найти, как добавить пользовательский класс css в выбранный блок в QTextEdit.

Насколько я знаю, формат изменяется с помощью такого кода:

QTextCursor cursor = textEdit->textCursor();
QTextBlockFormat bfmt;
// Apply format changes
cursor.setBlockFormat(bfmt);

Когда я это делаю, сгенерированный HTML-код создает диапазон со встроенным стилем, но я хочу вставить класс css:

<SPAN class='myclass'>text</span>

Мне не хватает функции внутри QTextBlockFormat для установки класса css текста.


person Santilín    schedule 08.02.2013    source источник


Ответы (1)


Вы должны иметь возможность подражать этому поведению, вручную добавляя теги <span style=""> к выделенному тексту:

QString oldText = cursor.selectedText();
// not the best way to concat three strings, but for example only...
cursor.insertHtml(QString("<span class=\"%1\">%2</span>").arg("myclass").arg(oldText));

selectedText() вернет текущий выделенный текст, а insertHtml() вставит новый текст в начало курсора, удалив текущий выбор, если он есть.

person Nemanja Boric    schedule 08.02.2013