QTextDocument 富文本
QTextDocument textDoc;
textDoc.setIndentWidth(20); // 缩进
textDoc.setHtml(text->htmlText()); // 文本
QTextBlock 文本块(段落)
文本块由 QTextBlock 类提供。
文本块可以将具有不同字符样式的文本分组,用于表示文档段落。典型的文本块具有若干个不同样式的文本片段。
QTextFragment 文本片段(格式相同的文本字段)
QTextBlock block = textDoc.firstBlock();
QVector<QTextFormat> 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();
}