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

时间:2014-07-12 10:03:01

标签: c++ image qt text-formatting

在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没有添加新块:图像和文本属于同一个块。

有什么想法可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

因为默认模式是当您不重新分配自己的charformat时,游标插入的文本将采用当前文本片段使用的charformat。在您的情况下,它是图像的格式。

答案 1 :(得分:0)

我不确定为什么我的问题中的代码不起作用,但这是一个简单的解决方法:

而不是:

cur.insertText("SOME TEXT");

只写:

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

但问题仍然存在:为什么在图像后插入文字时我必须添加这一行?