Qt 富文本处理(01):大纲

前言

  Qt的富文本处理使用了Scribe框架,提供一组用于读取和操作结构化富文本文档(RTF)的类。 与以前的Qt支持富文本不同,新类围绕QTextDocument类而不是原始文本信息。 这使开发人员无需创建中间标记格式的内容就可以创建和修改结构化的RTF文档。
  Qt 使用QTextDocument 类来存储RTF,使用 QTextCursor 类来编辑RTF,

Qt中对富文本的处理分为 编辑 操作和 只读 操作两种方式 :

  • 编辑操作是使用基于光标的一些接口函数,这样更好的模拟了用户的编辑操作,更加容易理解,而且不会丢失底层的文档框架。主要基于QTextCursor类
  • 对于文档结构的概览,使用了只读的分层次的接口函数,它们有利于文档的检索和输出。主要基于QTextDocument类

补充说明:
Scribe框架 : 用于Web平台的富文本编辑器框架。
各种富文本/ HTML编辑器和框架比较

富文本处理分为多个部分,便于参考:

  • 富文本文档结构概述了QTextDocument 中的不同类型的元素,并描述了它们在文档结构中的排列方式。
  • QTextCursor 接口解释了如何使用基于游标的界面编辑富文本文档。
  • 文档布局简要说明了文档布局的作用。
  • 常见富文本编辑任务 考察了一些涉及阅读或操作富文本文档的常见任务。
  • 高级富文本处理 考察高级富文本编辑任务。
  • 支持的 HTML 子集列出了QTextDocument 支持的 HTML 标记。

用于富文本处理的API

Qt 提供了用于分析、呈现操作和编辑富文本的类集合。

说明
相关类
QFont指定用于绘制文本的字体的查询
QSyntaxHighlighter允许您定义语法突出显示规则,此外,您可以使用 类查询文档的当前格式或用户数据
QTextLength封装 QTextDocument 中使用的不同类型的长度
QTextOption常规富文本属性的描述
富文本编辑或显示的控件
QPlainTextEdit用于编辑和显示纯文本的小工具
QTextBrowser包含超文本导航的富文本浏览器
QTextEdit用于编辑和显示纯文本和富文本的小工具
文本文档和文本光标
QTextDocument保留格式化的文本
QTextCursor提供用于访问和修改 QTextDocuments 的 API
元素和格式的基类
QTextObject不同类型的对象的基类,这些对象可以将 QText 文档的某些部分分组在一起,元素父类
QTextFormatQText 文档的格式信息,元素格式父类
框架部分
QTextFrame表示 QTextDocument 中的框架
QTextFrame::iterator用于读取 QTextFrame 内容的器
QTextFrameFormatQTextDocument 中框架的格式信息
文本块部分
QTextBlockQTextDocument 中文本片段的容器
QTextBlock::iteratorQTextBlock::iterator 类提供了一个用于读取 QTextBlock 内容的读取器
QTextBlockFormatQTextDocument 中文本块的格式信息
QTextBlockGroupQTextDocument 中文本块的容器
QTextBlockUserData用于将自定义数据与文本块关联
表格部分
QTextTable表示 QText 文档中的表
QTextTableFormatQTextDocument 中表的格式信息
QTextTableCell表示 QTextTable 中单元格的属性
QTextTableCellFormatQTextDocument 中表单元格的格式信息
列表部分
QTextListQTextDocument 中项目的修饰列表
QTextListFormatQTextDocument 中列表的格式信息
文本片段部分
QTextFragment使用单个 QTextCharformat 在 QText 文档中保存一段文本
QTextCharFormatQTextDocument 中字符的格式信息
图像
QTextImageFormat在 QTextDocument 中格式化图像的信息
布局部分
QAbstractTextDocumentLayout用于实现 QTextDocuments 自定义布局的抽象基类
QTextInlineObject表示 QAbstractTextDocumentLayout 及其实现中的内联对象
QPlainTextDocumentLayout实现 QTextDocument 的纯文本布局
控件布局
QTextLayout用于布局和呈现文本
QTextLine表示 QTextLayout 中的一行文本
文档辅助类
QTextDocumentFragment表示 QTextDocument 的一段格式化文本
QTextDocumentWriter用于将 QText 文档写入文件或其他设备的与格式无关的接口

用于富文本编辑的控件

  • QTextEdit:富文本编辑器,支持html显示,可以用sethtml/tohtml进行html文本操作或使用,也可利用setPlainText、toPlainText进行纯文本操作
  • QTextBrowser:继承于QTextEdit,仅提供显示功能,并提供了超文本导航功能,如果不需要超文本连接只需要使用QTextEdit并设置QTextEdit::setReadOnly
  • QPlainTextEdit:纯文本编辑器,不算富文本编辑器。但是也使用基于QTextDocument的存储 和基于QTextCursor操作的方式。

官方示例

QTextDocument 官方范例:

  • Application Example :应用程序示例展示了如何实现具有菜单、工具栏和状态栏的标准GUI应用程序。示例本身是一个围绕QPlainTextEdit构建的简单文本编辑器程序。

  • code editor Example :创建具有行号并突出显示当前行的简单编辑器

  • Syntax Highlighter Example :语法高亮的例子

  • Text Edit Example:类似于word编辑器的例子

  • Calendar Example :利用富文本编辑器的方式实现日历

  • Order Form Example :根据一些的参数设置生成报表,其实和上面的原理一样

  • Text Finder Example :文本查找

  • Text Object Example :将SVG文件插入QTextDocument。

总结

  Qt 使用QTextDocument 类来存储RTF,使用 QTextCursor 类来编辑RTF,QTextEdit、QPlainTextEdit、QTextBrowser是个显示部件,本身只有一些简单的编辑接口,但是也是基于了QTextDocument的存储 和基于QTextCursor操作的操作。

 官方文档 Rich Text Processing - Rich Text Processing APIs

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值