在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)
因为默认模式是当您不重新分配自己的charformat时,游标插入的文本将采用当前文本片段使用的charformat。在您的情况下,它是图像的格式。
答案 1 :(得分:0)
我不确定为什么我的问题中的代码不起作用,但这是一个简单的解决方法:
而不是:
cur.insertText("SOME TEXT");
只写:
cur.setCharFormat( text_textcharformat );
cur.insertText("SOME TEXT");
但问题仍然存在:为什么在图像后插入文字时我必须添加这一行?