QTextDocument

news2024/11/28 16:53:00

一、描述

此类用来储存结构化的富文本文档。

二、类型成员

1、enum QTextDocument::FindFlag:此枚举描述查找函数可用的选项。这些选项可以用“|”组合:

  • FindBackward:向后搜索。
  • FindCaseSensitive:不区分大小写。
  • FindWholeWords:查找仅匹配完整的单词。

2、enum QTextDocument::MetaInformation:此枚举描述了可以添加到文档中的不同类型的元信息。

  • DocumentTitle:文档的标题。
  • DocumentUrl:文档的url。loadResource() 函数在加载相关资源时使用此url作为基础。
  • CssMedia:此值用于在调用 setHtml() 时从指定的CSS样式表中选择相应的“@media”规则

3、enum QTextDocument::ResourceType:此枚举描述可由 loadResource() 函数或QTextBrowser::setSource() 加载的资源类型。

  • UnknownResource:未加载资源,或资源类型未知。
  • HtmlResource:资源包含HTML。
  • ImageResource:资源包含图像数据。
  • StyleSheetResource:资源包含CSS。
  • MarkdownResource:资源包含Markdown。
  • UserResource:用户定义的资源类型的第一个可用值。

三、属性成员

1、baseUrl : QUrl

用于解析文档中相对资源URL的基URL。

资源URL被解析为与基URL的目标位于同一目录中,即着路径中最后一个“/”之后的任何部分都将被忽略。

2、blockCount : const int

文档中文本块的数量。

此属性的值在具有表格(QTextTable)或框架(QTextFrame)的文档中未定义。

默认情况下,如果已定义,则值为1。

3、defaultFont : QFont

用于显示文档文本的默认字体。

4、defaultStyleSheet : QString

默认样式表,应用于插入到文档中的所有新HTML格式文本(使用 setHtml() 或 QTextCursor::insertHtml() 插入)。

更改默认样式表不会对文档的现有内容产生任何影响。

5、defaultTextOption : QTextOption

文档中所有 QTextLayout 的默认文本选项。

创建 QTextBlocks 时,将在其 QTextLayout 上设置 defaultTextOption

这可用来设置文档的全局属性,例如默认换行模式。

6、documentMargin : qreal

文档周围的边距。默认值为4。

7、indentWidth : qreal

文本列表(QTextList)和文本块(QTextBlock)缩进的宽度。默认为40。

8、layoutEnabled : bool

每次更改后 QTextDocument 是否应重新计算布局。默认为 true。

  • 为 true,则对文档的任何更改都会触发布局。
  • 为 false,则进行多次更改在最后只布局一次。

9、maximumBlockCount : int

文档文本块的最大数目。如果文档中所有的文本块超过此数目,则将从文档开头删除块。

负值或0表示无限制。默认值为0。此属性在具有表或框架的文档中未定义。

10、modified : bool

文档是否已被用户修改。默认为false。

11、pageSize : QSizeF

布置文档的页面大小。单位由基础绘制设备确定。在屏幕上绘制时,尺寸以逻辑像素为单位,在打印机上作画时以点数(1/72英寸)为单位。

12、size : const QSizeF

文档的实际大小,相当于 documentLayout()->documentSize()。可以通过设置文本宽度(textWidth)或设置页面大小(pageSize)来更改文档的大小。

13、textWidth : qreal

文档中文本的首选宽度。当文本的宽度大于此属性值时,如果文本可以拆分则将其拆分为多行。

若设置为-1,则只有当通过显式换行符或新段落强制换行时文本才会被拆分。默认值为-1。

14、undoRedoEnabled : bool

是否为此文档启用了撤消/回撤。默认为true。

如果禁用,将清除撤消堆栈,并且不会向其中添加任何项。

15、useDesignMetrics : bool

文档是否使用字体的 QFontMetrics 来提高文本布局的准确性。默认为 false。

设置为 false 则根据 QAbstractTextDocumentLayout::setPaintDevice() 上设置的绘制设备参数布局。

四、成员函数

1、【信号】void blockCountChanged(int newBlockCount)

文档中的文本块总数发生变化时发出此信号。

2、【信号】void contentsChange(int position, int charsRemoved, int charsAdded)

文档内容发生变化时发出此信号。例如插入或删除文本或应用格式时。

position 为发生更改的字符位置、charsRemoved 为删除的字符数、charsAdded 为添加的字符数。

3、【信号】void cursorPositionChanged(const QTextCursor &cursor)

光标的位置由于编辑操作而改变时发出此信号。更改的光标为 cursor。

4、【信号】void modificationChanged(bool changed)

文档内容以影响修改状态的方式更改时发出此信号。

5、void redo() / void undo()

回撤/撤消文档上的最后一次编辑操作。

      void redo(QTextCursor *cursor) / void undo(QTextCursor *cursor)

如果可以回撤 / 撤消,则回撤 / 撤消文档上的最后一次编辑操作。cursor 位于回撤 / 撤消编辑操作的位置的末尾。      

     int availableRedoSteps() / int availableUndoSteps()

可用的回撤 / 撤销步骤数。

      bool isRedoAvailable() / bool isUndoAvailable()

是否可以回撤 / 撤销。

6、【信号】void redoAvailable(bool available)

回撤操作的可用性变化时发出此信号。

7、【信号】void undoCommandAdded()

向文档添加可撤消内容时都会发出此信号。

8、void addResource(int type, const QUrl &name, const QVariant &resource)

使用 type 和 name 作为标识符,将资源 resource 添加到资源缓存中。type 是 ResourceType 中的值。

将图像添加为资源,从文档中引用它:

9、void adjustSize()

将文档调整为合理大小。

      qreal idealWidth()

返回文本文档的理想宽度。理想宽度是文档的实际使用宽度,不考虑可选对齐方式。

10、QList<QTextFormat> allFormats()

返回文档中使用文本格式列表。

11、QTextBlock begin() / QTextBlock firstBlock()

文档的第一个文本块。

       QTextBlock end()

返回的文本块无效,表示文档中最后一个块之后的块。

for (QTextBlock it = doc->begin(); it != doc->end(); it = it.next())
    std::cout << it.text().toStdString() << "\n";

      QTextBlock findBlock(int pos)

返回包含第 pos 个字符的文本块。 

      QTextBlock lastBlock()

返回文档最后一个有效的文本块。

      QTextBlock findBlockByLineNumber(int lineNumber)

返回第 lineNumber 行的文本块。从0开始算。

      QTextBlock findBlockByNumber(int blockNumber)

 返回第 blockNumber 个文本块。

12、QChar characterAt(int pos)

返回位置pos处的字符,如果pos超出范围,则返回空字符。

13、int characterCount()

返回此文档的字符数。

14、void clear()

清除文档。

15、void clearUndoRedoStacks(QTextDocument::Stacks stacksToClear = UndoAndRedoStacks)

清除指定的堆栈。

16、QTextDocument * clone(QObject *parent = nullptr)

创建一个新的QTextDocument,它是此文本文档的副本。parent 是返回文本文档的父级。

17、void drawContents(QPainter *p, const QRectF &rect = QRectF())

使用画笔p绘制文档的内容,剪切为 rect 范围的内容。如果 rect 是一个空矩形,那么将不剪切。

18、QTextCursor find(const QString &subString, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags())

查找文档中的子字符串subString。搜索从给定光标 cursor 的位置开始。

如果找到了subString,则返回具有所选匹配项的光标;否则返回空光标。

默认情况下,搜索不区分大小写,可以匹配文档中任何位置的文本。

      QTextCursor find(const QString &subString, int position = 0, QTextDocument::FindFlags options = FindFlags())

搜索从给定位置 position 开始。如果 position 为 0,则搜索从文档开头开始。

      QTextCursor find(const QRegularExpression &expr, int from = 0, QTextDocument::FindFlags options = FindFlags())

搜索从给定的 from 位置开始。

      QTextCursor find(const QRegularExpression &expr, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags())

搜索从给定光标 cursor 的位置开始。

19、int lineCount()

返回文档的行数。

20、QVariant loadResource(int type, const QUrl &name)

从具有给定名称的资源加载指定类型的数据。type 是 ResourceType 的值。

      QVariant resource(int type, const QUrl &name)

返回指定类型的数据。如果在缓存中找不到资源,则调用 loadResource() 尝试加载资源。

21、int pageCount()

返回此文档中的页数。

22、void print(QPagedPaintDevice *printer)

打印文档。

23、int revision()

返回文档的修订版本值。当编辑文档时,修订版本的值会增加。

24、QTextFrame * rootFrame()

返回文档的根框架。

25、void setBaselineOffset(qreal baseline)

设置在文档布局中使用的字体高度的百分比的基线。默认值为0。正值将文本上移相应的百分比,负值则向下移动。

 

26、void setDefaultCursorMoveStyle(Qt::CursorMoveStyle style)

设置默认光标移动样式。

  • Qt::LogicalMoveStyle:在从左到右的文本块内,按左箭头键时减少光标位置,按右箭头键时增加光标位置。如果文本块是从右到左的,则应用相反的行为。
  • Qt::VisualMoveStyle:按下左箭头键将始终使光标向左移动,无论文本的书写方向如何。 按右箭头键将始终使光标向右移动。

27、void setHtml(const QString &html) / void setPlainText(const QString &text)

替换文档的全部内容。调用此函数时,将重置撤消/回撤历史记录。

      QString toHtml()

返回包含文档的HTML表示形式的字符串。

文档内容指定其编码为UTF-8。如果要将返回的 html 字符串转换为字节数组以通过网络传输或保存到磁盘时,应使用 QString::toUtf8() 将字符串转换为 QByteArray。

      QString toPlainText()

返回文档中包含的纯文本。与 toRawText() 相比,此函数将用 ASCII 字符替换某些 unicode 字符。

      QString toRawText()

返回文档中包含的原始文本,不包含任何格式信息。

28、void setMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub)

使用 Markdown 格式文本替换文档的全部内容。调用此函数时,将重置撤消/回撤历史记录。

可以通过 features 参数启用或禁用解析器的某些功能:

  • Markdown NoHTML:Markdown文本中的任何HTML标记都将被丢弃
  • MarkdownDialectCommonMark:解析器仅支持 CommonMark 标准化的功能
  • MarkdownDialectGitHub:默认值,解析器支持GitHub特性

      QString toMarkdown(QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub)

返回含具有给定特性的文档的 Markdown 表示形式的字符串。

29、void setMetaInformation(QTextDocument::MetaInformation info, const QString &string)

设置文档元信息。

30、void setSubScriptBaseline(qreal baseline) / void setSuperScriptBaseline(qreal baseline)

设置下标 / 上标要在文档布局中使用的字体高度的百分比。

默认值:下标为16.67%(高度的1/6);上标为 50%(高度的1/2)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用户单点登录

一、用户身份认证 1、单一服务器模式 我们使用传统的Session贺Coookie的模式&#xff0c;就可以完成单一服务器的登录&#xff0c;会话跟踪技术&#xff0c; 一般过程如下&#xff1a; 用户向服务器发送用户名和密码。 验证服务器后&#xff0c;相关数据&#xff08;如用户名…

SpringBoot自定义动态定时任务(三十五)

二八佳人体似酥&#xff0c;腰间仗剑斩愚夫。虽然不见人头落&#xff0c;暗里教君骨髓枯。 上一章简单介绍了SpringBoot整合Quartz实现动态定时任务(三十四) ,如果没有看过,请观看上一章 通过 Quartz 实现了动态定时任务&#xff0c;还需要引入 Quartz 组件&#xff0c; 能不…

腾讯前端二面高频手写面试题总结

实现LRU淘汰算法 LRU 缓存算法是一个非常经典的算法&#xff0c;在很多面试中经常问道&#xff0c;不仅仅包括前端面试 LRU 英文全称是 Least Recently Used&#xff0c;英译过来就是” 最近最少使用 “的意思。LRU 是一种常用的页面置换算法&#xff0c;选择最近最久未使用的…

降本提效 | AIRIOT设备运维管理解决方案

传统运维多是使用在本地化系统&#xff0c;以人工运维和独立系统执行运维工作&#xff0c;重点关注的是设施运行&#xff0c;存在以下几个问题&#xff1a; 1、信息孤岛&#xff1a;本地化系统的接口不同&#xff0c;功能单一独立&#xff0c;各个系统之间的数据无法对接、交互…

了解枚举。

在数学和计算机科学理论中&#xff0c;一个集的枚举是列出某些有穷序列集的所有成员的程序&#xff0c;或者是一种特定类型对象的计数。这两种类型经常&#xff08;但不总是&#xff09;重叠。 [1] 是一个被命名的整型常数的集合&#xff0c;枚举在日常生活中很常见&#xff0…

xxx.OpenResty+Lua后续补充

OpenRestyLua后续补充-请求参数处理看上图&#xff0c;鼠标右键-在新标签中打开图片食用 这是对xxx.nginx转发OpenResty(nginx升级版)_web服务器lua_tgbyhn31的博客-CSDN博客 的一个补充&#xff0c;用于nginx处理请求参数。 附代码&#xff1a; nginx 配置 #user nobody; w…

centos7 安装docker和docker-compose

本人使用的是 阿里云的centos7 的 镜像 安装在虚拟机里面的linux系统 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 如果这条命令没用 在国内很慢 换个地址用下面的试试 curl -sSL https://get.daocloud.io/docker | sh 安装成功 设置开机启动doc…

让你轻松掌握电商设计的在线工具,无门槛

零门槛不用经过工具认识&#xff0c;跟着教程就能上手的电商主图设计平台&#xff0c;让无基础又急需要设计电商主图的你轻松设计商品主图&#xff0c;下面跟着小编的教程一起学习如何使用乔拓云&#xff0c;在线设计电商主图&#xff01;按照步骤就能搞定&#xff01;第一步&a…

适配器Adapter

1.意图&#xff1a;将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2.结构 类适配器结构图 对象适配器结构图 类适配器使用多重继承对一个接口与另一个接口进行匹配。对象适配器依赖于对象组合。 Targ…

职场一些办公技能和技巧总结

办公软件Word、Excel、PPT职场一些办公技能和技巧总结一、Word&#xff08;含 WPS word&#xff09;1、输入带小方框的对勾 / 叉号法1法2&#xff08;搜狗输入法&#xff09;备注&#xff1a;Word、Excel、PPT 职场一些办公技能和技巧总结一、Word&#xff08;含 WPS word&…

MySQL调优-深入理解MySQL事务隔离级别与锁机制

目录 MySQL调优-深入理解MySQL事务隔离级别与锁机制 概述 事务及其ACID属性 (1) 原子性(Atomicity) (2)一致性(Consistent) (3) 隔离性(Isolation) (4) 持久性(Durable) 原子性和一致性有何区别&#xff1f; 并发事务处理带来的问题 更新丢失(Lost Update)或脏写 脏读&…

Mysql 使用存储过程合并多个表数据

Mysql 使用存储过程合并多个表数据 drop procedure if exists mergeTable; CREATE PROCEDURE mergeTable() BEGIN#定义变量declare temp_table_name varchar(20);declare total int default 0;declare done int default false;#游标数据来源 查询出你想要合并的表名称declar…

分布式锁实现

分布式锁实现一 为什么要使用分布式锁二 分布式锁应该具备哪些条件三 分布式锁的三种实现方式四 基于数据库的实现方式五 基于Redis的实现方式一 为什么要使用分布式锁 我们在开发应用的时候&#xff0c;如果需要对某一个共享变量进行多线程同步访问的时候&#xff0c;可以使用…

HCIE-Security:顺利通过,备考心得

备考半年多&#xff0c;终于通过华为HCIE安全&#xff0c;今天把心得贴出来&#xff0c;供大家参考。 我是4月1日开始在机构开始学习安全IE的&#xff0c;报名之后从IA开始学习&#xff0c;学习期间也算勤勤恳恳&#xff0c;每次上课都进行预习和复习&#xff0c;形成自己的笔记…

论文投稿指南——中文核心期刊推荐(大气科学)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

2023-1-5 javaScript

JavaScript基础 javaScript 概念 概念&#xff1a;一门客户端脚本语言 脚本语言&#xff1a;不需要编译&#xff0c;直接就可以被浏览器解析执行了 功能&#xff1a;可以增强用户和heml页面交互的过程可以控制html元素&#xff0c;让页面有一些动态的效果&#xff0c;增强用…

[AHK]腾讯实时股票数据接口

腾讯财经接口获取最新行情以五粮液为例&#xff0c;要获取最新行情&#xff0c;访问数据接口&#xff1a;qt.gtimg.cn/qsz000858返回数据&#xff1a;v_sz000858"51~五 粮 液~000858~27.78~27.60~27.70~417909~190109~227800~27.78~492~27.77~332~27.76~202~27.75~334~27.…

[ERROR] Malformed \uxxxx encoding.报错解决

今天用idea运行完项目。想直接打包的时候&#xff0c;结果打包失败&#xff0c;一直报错 [ERROR] Malformed \uxxxx encoding. 网上查了之后&#xff0c;一直说是&#xff0c;有路径在使用斜杠的时候&#xff0c;使用错误。将"\“换成”/“就好了&#xff0c;但是我配置文…

pb将字符串中的中文和英文(含符号)拆分

//用于将字符串中的中文和英文(含符号)拆分 //uf_split_str_enorcn(as_inputstr) //as_inputstr:导入字符串 long i, li_len, li_lenA as_return_cn = as_return_en = if as_inputstr > then li_len = len(as_inputstr) //带中文长度 li_lenA = lenA…

ICMP隧道-调研笔记

ICMP隧道通信原理与通信特征 https://baijiahao.baidu.com/s?id1652047934643855432&wfrspider&forpc 1.一个正常的 ping每秒最多只会发送两个数据包&#xff0c;而使用ICMP隧道的浏览器在同一时间会产生大量ICMP 数据包 2.ICMP隧道数据包中DATA 往往大于64 比特 3.正…