C++ QTextEdit显示的块中图像后的文本格式
在QTextEdit对象中,我希望显示由两部分组成的文档:标题和文本。文本以图像开头(首字母,放在左边),因此我的代码是:C++ QTextEdit显示的块中图像后的文本格式,c++,image,qt,text-formatting,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_textcharfo
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没有添加新块:图像和文本属于同一块
有什么想法可以帮助我吗?我不知道为什么我问题中的代码不起作用,但这里有一个简单的解决方法: 而不是:
cur.insertText("SOME TEXT");
只要写下:
cur.setCharFormat( text_textcharformat );
cur.insertText("SOME TEXT");
但问题仍然存在:当文本插入图像后,为什么我必须添加这一行?因为默认模式是,当您不重新指定自己的charformat时,光标插入的文本将采用当前文本片段使用的charformat。在您的情况下,这是图像的格式