富文本 QTextDocument 解析及相关

QTextDocument 富文本

    QTextDocument textDoc;
    textDoc.setIndentWidth(20);		// 缩进
    textDoc.setHtml(text->htmlText());	// 文本

QTextBlock 文本块(段落)

文本块由 QTextBlock 类提供。

文本块可以将具有不同字符样式的文本分组,用于表示文档段落。典型的文本块具有若干个不同样式的文本片段。

QTextFragment 文本片段(格式相同的文本字段)

    QTextBlock block = textDoc.firstBlock();
    QVector allFormats = textDoc.allFormats();
    while(block.isValid()) {
       	QTextBlockFormat blockFmt = block.blockFormat();
     	QTextList* textList = block.textList();
     	if(textList)
	     QTextListFormat listFmt = allFormats[textList->formatIndex()].toListFormat();
     }
     for(QTextBlock::iterator it = block.begin(); !it.atEnd(); it++)
     {
        QTextFragment fragment = it.fragment();
        QTextCharFormat charFmt = fragment.charFormat();
		// 字体样式
		charFmt.fontFamily();
		charFmt.fontPointSize();
		charFmt.fontItalic();
		charFmt.fontUnderline();
		charFmt.foreground().color();
 		charFmt.background().color();
		charFmt.verticalAlignment();
		// 文字内容 
		QString textStr = fragment.text();
     } 
     block = block.next(); 
}

 

你可能感兴趣的:(Qt)