QTextEdit显示的块中图像后的文本格式

Text format after an image in a block displayed by QTextEdit

本文关键字:文本 图像 格式 显示 QTextEdit      更新时间:2023-10-16

在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()的调用时,我的文本被正确显示

我检查了curt . insertimage没有添加新的块:图像和文本属于同一个块。

有什么好主意吗?

因为默认模式是,当您不重新分配自己的字符格式时,光标插入的文本将采用当前文本片段使用的字符格式。在您的示例中,它是图像的格式。

不知道为什么我的问题中的代码不起作用,但这里有一个简单的解决方案:

代替:

cur.insertText("SOME TEXT");

直接写:

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

但是问题仍然存在:为什么当文本插入到图像之后时,我必须添加这一行?