2014-07-12 43 views
0

在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

不知道明白爲什麼在我的問題的代碼沒有工作,但這裏有一個簡單的解決方法:

相反的:

cur.insertText("SOME TEXT"); 

只是寫:

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

但問題仍然存在:爲什麼在圖像之後插入文本時,必須添加此行?

1

由於默認模式是當您不重新分配自己的charformat時,光標插入的文本將採用當前文本片段使用的charformat。在你的情況下,它是圖像的格式。