Формат текста после изображения в блоке, отображаемом QTextEdit

В объекте QTextEdit я хочу отобразить документ, состоящий из двух частей: заголовка и текста. Текст начинается с изображения (инициал, размещенный слева), отсюда мой код:

  QTextCursor cur = this->textCursor();

// title :
[... defining the title block format and the title's text char format ...]
cur.insertBlock( title_blockformat, title_textcharformat );
cur.insertText("TITLE");

// initial + text
// [... defining the text block format and text's text char format ...]
cur.insertBlock( text_blockformat, text_textcharformat );
// [...defining the image format...]
cur.insertImage( imageformat, QTextFrameFormat::FloatLeft);
cur.insertText("SOME TEXT");

Я застрял со следующей проблемой: заголовок отображается правильно, изображение тоже, но текст отображается в формате по умолчанию, как будто строка

  cur.insertBlock( text_blockformat, text_textcharformat );

был как-то забыт из-за изображения. Когда я удаляю вызов cur.insertImage (), мой текст отображается правильно.

Я проверил, что cur.insertImage не добавляет новый блок: изображение и текст принадлежат одному блоку.

Есть идеи, чтобы помочь мне?

0

Решение

Поскольку режим по умолчанию состоит в том, что, когда вы не переназначаете свой собственный формат символов, текст, вставленный курсором, будет принимать формат символов, используемый текущим фрагментом текста. В вашем случае это формат изображения.

1

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

Не уверен, что понимаю, почему код в моем вопросе не работает, но вот простой обходной путь:

Вместо :

cur.insertText("SOME TEXT");

просто пиши :

cur.setCharFormat( text_textcharformat );
cur.insertText("SOME TEXT");

Но остается вопрос: почему я должен добавить эту строку, когда текст был вставлен после изображения?

0

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