一.QTextEdit的使用
rich text是用html标签表示的形式。text edit可以显示plain text(纯文本)和html文件。
setHtml(), toHtml()返回HTML格式中的文本,用来控制内容到html的转换,还有清除内容。
插入内容:insertHtml(), insertPlainText(), append()。
设置当前character的属性: setFontUnderline()(设置字体下划线), setFontFamily()(设置字体类型), setFontPointSize()(设置字体点大小),setCurrentFont()(设置现在的字体).
二.QTextDocument组成
QTextDocument存放结构化的rich text文件,每个元素都有对应的格式对象。可以通过objectForFormat()来通过格式对象查找元素。QTextDocument能够忽略不能理解的标记。
可以通过QTextCursor来编程编辑QTextDocument对象,并对其进行填充。通过rootFrame()方法得到根节点再遍历其中的元素。如果只是浏览其中的文本文
档,就用begin(),end(),findBlock()方法。
文本的格式由documentLayout()决定.metaInformation()来的到文件的元信息。
toPlainText()和toHtml()方法能够得到它text形式的内容和html形式的内容。
在 QTextDocument 类中包括一些通用的元素,例如 QTextBlock(段落),QTextFrame(框架),QTextTable(表格) 和 QTextList(列表) 描述。
图片使用一种特殊的文本片段描述。在更低的层次上,这些元素都有自己的描述属性,如文本风格和对齐方式。
文档的基本构建单位是QTextBlock和QTextFrame。块本身就包含文本片段(QTextFragment),但是这不会直接影响到高层次的文档结构。
框架和表格用于组织其他结构,而文本块则包含真正的文本信息。每一个文档都包括一个根框架(root frame),以及至少一个文本块。
root frame决定显示的方式和布局。框架提供不同文档部分的逻辑分割,同时也提供了在渲染时如何显示的属性。一个表格就是一个特化的
框架,包含分布在不同行和列的多个单元。每个单元都能够包含更多的结构和文本。表格提供了灵活配置单元的管理和布局的特性。
文本块包含文本片段。每一个文本片段都有特定的文本和字符格式信息。文本属性在字符级别和块级别定义。在字符级别可以指定字体、颜
色和大小。在块级别可以指定更高一级的行为,例如文本流方向、对齐方式和背景色。
对文本块分组的是 QTextBlockGroup 的子类,对文本片段和其他元素分组的是 QTextFrame 的子类。
三.开始使用QTextDocument
1.创建富文本
QTextDocument *newDocument = new QTextDocument;
也可以通过已有的文本组件获得:
QTextEdit *editor = new QTextEdit;
QTextDocument *editorDocument = editor->document();
新元素的创建和插入可以通过使用 QTextCursor 以编程的方式实现,或者通过 QTextEdit 以用户可视化编辑的方式实现。元素可以在创建时
指定一个特定的样式,或者是直接使用当前光标所在位置的样式。
QTextDocumentFragment用来保存QTextDocument的任意片段的,可以包含段落,表格,甚至一个完整的QTextDocument