Добавить пользовательское свойство класса 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 текста.

3

Решение

Вы должны быть в состоянии эмулировать это поведение, добавляя вручную <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() вставит новый текст в начале курсора, удалив текущий выбор, если таковой имеется.

0

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

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

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