Я не новичок в Qt, но я не могу найти, как добавить пользовательский класс CSS в выбранный блок в QTextEdit.
Насколько я знаю, формат изменяется с помощью следующего кода:
QTextCursor cursor = textEdit->textCursor();
QTextBlockFormat bfmt;
// Apply format changes
cursor.setBlockFormat(bfmt);
Когда я делаю это, сгенерированный HTML-код создает диапазон со встроенным стилем в нем, но я хочу вставить класс css:
<SPAN class='myclass'>text</span>
Мне не хватает функции внутри QTextBlockFormat для установки класса css текста.
Вы должны быть в состоянии эмулировать это поведение, добавляя вручную <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()
вставит новый текст в начале курсора, удалив текущий выбор, если таковой имеется.
Других решений пока нет …