QTextDocument 类
QTextDocument 类存储格式化文本。 更多...
头文件 | #include <QTextDocument> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
继承自 | QObject |
- 包含所有成员列表,包括继承成员
- QTextDocument 是富文本处理 API 的一部分。富文本处理 API
注意: 类中所有函数均 可重入。
公共类型
枚举 | FindFlag { FindBackward, FindCaseSensitively, FindWholeWords } |
旗标 | FindFlags |
旗标 | MarkdownFeatures |
枚举 | MetaInformation { DocumentTitle, DocumentUrl, CssMedia } |
(自 6.1) | ResourceProvider |
枚举 | ResourceType { UnknownResource, HtmlResource, ImageResource, StyleSheetResource, MarkdownResource, UserResource } |
枚举 | Stacks { UndoStack, RedoStack, UndoAndRedoStacks } |
属性
|
|
公共函数
QTextDocument(QObject *parent = nullptr) | |
QTextDocument(const QString &text, QObject *parent = nullptr) | |
虚 | ~QTextDocument() |
void | addResource(int type, const QUrl &name, const QVariant &resource) |
void | adjustSize() |
QList<QTextFormat> | allFormats() const |
int | availableRedoSteps() const |
int | 可撤销步骤数() const |
QUrl | 基本URL() const |
(自6.0起) qreal | 基线偏移量() const |
QTextBlock | 开始位置() const |
int | 块数量() const |
QChar | 字符位置(int pos) const |
int | 字符总数() const |
virtual void | 清除() |
void | 清除撤销重做堆栈(QTextDocument::Stacks stacksToClear = UndoAndRedoStacks) |
QTextDocument * | 复制(QObject *parent = nullptr) const |
Qt::CursorMoveStyle | 默认光标移动风格() const |
QFont | 默认字体() const |
QString | 默认样式表() const |
QTextOption | 默认文本选项() const |
QAbstractTextDocumentLayout * | 文档布局() const |
qreal | 文档边距() const |
void | 绘制内容(QPainter *p, const QRectF &rect = QRectF()) |
QTextBlock | 结束位置() const |
QTextCursor | 查找(const QString &subString, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const |
QTextCursor | 查找(const QString &subString, int position = 0, QTextDocument::FindFlags options = FindFlags()) const |
QTextCursor | 查找(const QRegularExpression &expr, int from = 0, QTextDocument::FindFlags options = FindFlags()) const |
QTextCursor | 查找(const QRegularExpression &expr, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const |
QTextBlock | 查找块(int pos) const |
QTextBlock | 按行号查找块(int lineNumber) const |
QTextBlock | 按块号查找块(int blockNumber) const |
QTextBlock | 第一个块() const |
qreal | 理想宽度() const |
qreal | 缩进宽度() const |
bool | 是否为空() const |
bool | 布局启用() const |
bool | 是否已修改() const |
bool | 是否有重做可用() const |
bool | 是否有撤销可用() const |
bool | 撤销重做启用() const |
QTextBlock | 最后一个块() const |
int | 行数() const |
void | 标记内容为脏(int position, int length) |
int | 最大块数量() const |
QString | 元信息(QTextDocument::MetaInformation info) const |
QTextObject * | 对象(int objectIndex) const |
QTextObject * | 格式化对象(const QTextFormat &f) const |
int | 页数() const |
QSizeF | 页面大小() const |
void | 打印(QPagedPaintDevice *printer) const |
void | 重做(QTextCursor *cursor) |
QVariant | 资源(int type, const QUrl &name) const |
(自6.1起) QTextDocument::ResourceProvider | 资源提供者() const |
int | 修订版() const |
QTextFrame * | rootFrame() const |
void | setBaseUrl(const QUrl &url) |
(since 6.0) void | setBaselineOffset(qreal baseline) |
void | setDefaultCursorMoveStyle(Qt::CursorMoveStyle style) |
void | setDefaultFont(const QFont &font) |
void | setDefaultStyleSheet(const QString &sheet) |
void | setDefaultTextOption(const QTextOption &option) |
void | setDocumentLayout(QAbstractTextDocumentLayout *layout) |
void | setDocumentMargin(qreal margin) |
void | setHtml(const QString &html) |
void | setIndentWidth(qreal width) |
void | setLayoutEnabled(bool b) |
void | setMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) |
void | setMaximumBlockCount(int maximum) |
void | setMetaInformation(QTextDocument::MetaInformation info, const QString &string) |
void | setPageSize(const QSizeF &size) |
void | setPlainText(const QString &text) |
(since 6.1) void | setResourceProvider(const QTextDocument::ResourceProvider &provider) |
(since 6.0) void | setSubScriptBaseline(qreal baseline) |
(since 6.0) void | setSuperScriptBaseline(qreal baseline) |
void | setTextWidth(qreal width) |
void | setUndoRedoEnabled(bool enable) |
void | setUseDesignMetrics(bool b) |
QSizeF | size() const |
(自6.0起) qreal | subScriptBaseline() const |
(自6.0起) qreal | superScriptBaseline() const |
qreal | textWidth() const |
QString | toHtml() const |
QString | toMarkdown(QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) const |
QString | toPlainText() const |
QString | toRawText() const |
void | undo(QTextCursor *cursor) |
bool | useDesignMetrics() const |
公共槽
void | 重做() |
void | setModified(bool m = true) |
void | 撤销() |
信号
void | baseUrlChanged(const QUrl &url) |
void | blockCountChanged(int newBlockCount) |
void | contentsChange(int position, int charsRemoved, int charsAdded) |
void | 内容已更改() |
void | cursorPositionChanged(const QTextCursor &cursor) |
void | 文档布局已更改() |
void | modificationChanged(bool changed) |
void | redoAvailable(bool available) |
void | undoAvailable(bool available) |
void | 撤销命令已添加() |
静态公开成员
(自6.1起) QTextDocument::ResourceProvider | defaultResourceProvider() |
(since 6.1) void | setDefaultResourceProvider(const QTextDocument::ResourceProvider &provider) |
受保护的函数
虚拟 QTextObject * | createObject(const QTextFormat &format) |
虚 QVariants | loadResource(int type, const QUrl &name) |
详细说明
QTextDocument 是结构化富文本文档的容器,提供对样式文本和各种文档元素的支撑,例如列表、表、框架和图像。它们可以为使用在 QTextEdit 中而创建,或者独立使用。
每个文档元素都由一个关联的格式对象进行描述。每个格式对象都被 QTextDocuments 视为一个独特的对象,并且可以传递给 objectForFormat() 以获取应用到的文档元素。
可以使用 QTextCursor 通过程序来编辑 QTextDocument,并且可以通过遍历文档结构来检查其内容。整个文档结构存储为根框架下的文档元素层次结构,通过 rootFrame() 函数找到。或者,如果您只想迭代文档的文本内容,可以使用 begin()、end() 和 findBlock() 来检索可以检查和迭代的文本块。
文档的布局由 documentLayout() 决定;如果您想使用自己的布局逻辑,可以创建自己的 QAbstractTextDocumentLayout 子类,并使用 setDocumentLayout() 设置它。通过调用 metaInformation() 函数,可以获得文档的标题和其他元信息。对于通过 QTextEdit 类对用户暴露的文档,文档标题也可以通过 QTextEdit::documentTitle() 函数获取。
便利函数 toPlainText() 和 toHtml() 允许您获取文档内容的纯文本和 HTML 形式。可以使用 find() 函数在文档文本中执行搜索。
可以使用 setUndoRedoEnabled() 函数控制对文档执行的操作的可撤销/重做。可以通过编辑小部件通过 undo() 和 redo() scrollTop 来控制撤销/重做系统;文档还提供了 contentsChanged()、undoAvailable() 和 redoAvailable() 信号,以通知连接的编辑小部件撤销/重做系统的状态。以下是一个 QTextDocument 的撤销/重做操作:
- 插入或删除字符。在同一文本块内的一系列插入或删除被视为一个单独的可撤销/重做操作。
- 插入或删除文本块。在单个操作中一系列插入或删除(例如通过选择然后删除文本)被视为一个单独的可撤销/重做操作。
- 文本字符格式更改。
- 文本块格式更改。
- 文本块组格式更改。
另请参阅QTextCursor、QTextEdit 和 富文本处理。
成员类型文档
枚举 QTextDocument::FindFlag
标志 QTextDocument::FindFlags
此枚举描述了 QTextDocument 的查找功能可用的选项。选项可以从以下列表中 OR 一起使用
常量 | 值 | 描述 |
---|---|---|
QTextDocument::FindBackward | 0x00001 | 搜索方向相反,即反向搜索而不是正向搜索。 |
QTextDocument::FindCaseSensitively | 0x00002 | 默认情况下,搜索不区分大小写。指定此选项将行为更改为区分大小写的搜索操作。 |
QTextDocument::FindWholeWords | 0x00004 | 使搜索仅匹配完整的单词。 |
FindFlags 类型是 QFlags<FindFlag> 的 typedef。它存储 FindFlag 值的 OR 组合。
enum QTextDocument::MetaInformation
此枚举描述了可以添加到文档的不同类型的元信息。
常量 | 值 | 描述 |
---|---|---|
QTextDocument::DocumentTitle | 0 | 文档的标题。 |
QTextDocument::DocumentUrl | 1 | 文档的 URL。 loadResource() 函数使用此 URL 作为加载相对资源的基准。 |
QTextDocument::CssMedia | 2 | 当调用 setHtml() 时,此值用于从前指定的 CSS 样式表中选择相应的 '@media' 规则(如果有的话)。此枚举值自 Qt 6.3 起引入。 |
另请参阅metaInformation(),setMetaInformation() 和 setHtml()。
[alias, since 6.1]
QTextDocument::ResourceProvider
std::function<QVariant(const QUrl&)> 的类型别名。
此 typedef 自 Qt 6.1 起引入。
enum QTextDocument::ResourceType
此枚举描述了由 QTextDocument 的 loadResource() 函数或由 QTextBrowser::setSource() 加载的资源类型。
常量 | 值 | 描述 |
---|---|---|
QTextDocument::UnknownResource | 0 | 没有加载资源,或资源类型未知。 |
QTextDocument::HtmlResource | 1 | 资源包含 HTML。 |
QTextDocument::ImageResource | 2 | 资源包含图像数据。目前支持的数据类型是 QMetaType::QPixmap 和 QMetaType::QImage。如果相应的变量类型为 QMetaType::QByteArray,则 Qt 尝试使用 QImage::loadFromData 加载图像。QMetaType::QIcon 目前不支持。图标需要首先转换为支持的类型之一,例如使用 QIcon::pixmap。 |
QTextDocument::StyleSheetResource | 3 | 资源包含 CSS。 |
QTextDocument::MarkdownResource | 4 | 资源包含 Markdown。 |
QTextDocument::UserResource | 100 | 用户定义资源类型的第一个可用值。 |
另请参阅loadResource() 和 QTextBrowser::sourceType。
enum QTextDocument::Stacks
常量 | 值 | 描述 |
---|---|---|
QTextDocument::UndoStack | 0x01 | 撤销堆栈。 |
QTextDocument::RedoStack | 0x02 | 重做堆栈。 |
QTextDocument::UndoAndRedoStacks | UndoStack | RedoStack | 撤销和重做堆栈。 |
属性文档
baseUrl : QUrl
此属性包含用于在文档中解析相对资源 URL 的基准 URL。
资源 URL 被解析为与基准 URL 的目标相同的目录中,意味着路径中最后 '/' 之后的所有部分将被忽略。
基准 URL | 相对 URL | 解析后的 URL |
---|---|---|
file:///路径/to/content | images/logo.png | file:///路径/to/images/logo.png |
file:///路径/to/content/ | images/logo.png | file:///路径/to/content/images/logo.png |
file:///路径/to/content/index.html | images/logo.png | file:///路径/to/content/images/logo.png |
file:///路径/to/content/images/ | ../images/logo.png | file:///路径/to/content/images/logo.png |
访问功能
QUrl | baseUrl() const |
void | setBaseUrl(const QUrl &url) |
通知信号
void | baseUrlChanged(const QUrl &url) |
[只读]
blockCount : const int
此属性保存文档中的文本块数量。
在包含表格或框架的文档中,此属性的值未定义。
默认情况下,如果已定义,此属性包含值为1的值。
访问功能
int | blockCount() const |
另请参阅lineCount() 和 characterCount()。
defaultFont : QFont
此属性保存用于显示文档文本的默认字体。
访问功能
QFont | defaultFont() const |
void | setDefaultFont(const QFont &font) |
defaultStyleSheet : QString
默认样式表应用于插入文档中的新HTML格式文本,例如使用 setHtml() 或 QTextCursor::insertHtml。
样式表需要符合CSS 2.1语法。
注意:更改默认样式表不会对文档的现有内容产生影响。
访问功能
QString | defaultStyleSheet() const |
void | setDefaultStyleSheet(const QString &sheet) |
另请参阅支持的HTML子集。
defaultTextOption : QTextOption
此属性保存将设置在文档中所有 QTextLayout 上的默认文本选项。
当创建 QTextBlock 时,会在其 QTextLayout 上设置默认文本选项。这允许设置文档的全局属性,例如默认文本换行模式。
访问功能
QTextOption | defaultTextOption() const |
void | setDefaultTextOption(const QTextOption &option) |
documentMargin : qreal
文档周围的边距。默认值为4。
访问功能
qreal | documentMargin() const |
void | setDocumentMargin(qreal margin) |
indentWidth : qreal
返回用于文本列表和文本块缩进的宽度。
QTextListFormat 和 QTextBlockFormat 的缩进属性指定此值的倍数。默认缩进宽度为40。
访问功能
qreal | indentWidth() const |
void | setIndentWidth(qreal width) |
[自6.4以来]
layoutEnabled : bool
该属性表示QTextDocument在每个更改之后是否应重新计算布局
如果将此属性设置为true,则对文档的任何更改都会触发布局,使一切按预期工作,但需要消耗时间。
在处理多个更改时(不仅限于文本内容,还包括默认字体、默认文本选项等)暂时禁用布局可以节省时间,以确保文档只在使用完毕时进行一次布局。这在文本宽度或页面大小尚未确定的情况下非常有用。
默认情况下,此属性为true
。
此属性在Qt 6.4中引入。
访问功能
bool | isLayoutEnabled() const |
void | setLayoutEnabled(bool b) |
另请参阅setTextWidth。
maximumBlockCount : int
指定文档中的段落数量的限制。
指定文档可拥有的最大段落数量。如果文档中的段落数量超过此属性指定的数量,则将从文档开头删除段落数。
负数或零值表示文档可以包含无限数量的段落。
默认值为0。
请注意,设置此属性将立即将此限制应用于文档内容。
设置此属性还可以禁用撤销/重做历史。
在包含表格或框架的文档中,此属性是未定义的。
访问功能
int | maximumBlockCount() const |
void | setMaximumBlockCount(int maximum) |
modified : bool
此属性表示文档是否已被用户修改。
默认情况下,此属性为false
。
访问功能
bool | isModified() const |
void | setModified(bool m = true) |
另请参阅modificationChanged。
pageSize : QSizeF
该属性表示用于布局文档的页面大小。
单位由底层绘图设备确定。当在屏幕上绘制时,大小以逻辑像素为单位测量,当在打印机上绘制时,以点(1/72英寸)为单位测量。
对于新创建的空文档,默认情况下,此属性包含一个未定义的大小。
访问功能
QSizeF | pageSize() const |
void | setPageSize(const QSizeF &size) |
另请参阅modificationChanged。
[只读]
size : const QSizeF
该属性表示文档的实际大小。这等价于documentLayout()->documentSize();
文档的大小可以通过设置文本宽度或设置整个页面大小来更改。
请注意,宽度始终 >=pageSize().width()。
对于新创建的空文档,默认情况下,此属性包含一个依赖于配置的大小。
访问功能
QSizeF | size() const |
另请参阅setTextWidth,setPageSize和idealWidth。
textWidth : qreal
文本宽度指定了文档中文本的首选宽度。如果文本(或一般内容)比指定的宽度更宽,它将被拆分为多行并垂直增长。如果文本无法拆分为多行以适应指定的文本宽度,它将更大,并且size()和idealWidth()属性将反映这一点。
如果将文本宽度设置为-1,则除非通过明确的换行符或新段落强制执行,否则文本将不会拆分为多行。
默认值是-1。
设置文本宽度还会将页面高度设置为-1,导致文档以连续的方式垂直增长或收缩。如果您想要文档布局将文本拆分为多页,那么您必须设置pageSize属性。
访问功能
qreal | textWidth() const |
void | setTextWidth(qreal width) |
另外参见 size(), idealWidth(), 和 pageSize().
undoRedoEnabled : bool
此属性表示是否为此文档启用撤销/重做功能
默认为true。如果禁用,撤销堆栈将被清空,无法向其中添加任何项目。
访问功能
bool | isUndoRedoEnabled() const |
void | setUndoRedoEnabled(bool enable) |
useDesignMetrics : bool
此属性表示文档是否使用字体设计指标来提高文本布局的准确性
如果此属性设置为true,布局将使用设计指标。否则,将使用在QAbstractTextDocumentLayout::setPaintDevice()上设置的培养器指标。
使用设计指标使布局的宽度不再依赖于提示和像素舍入。这意味着基于绘制设备指标的文本布局成为可能,因为宽度会以更线性的方式根据绘制设备指标进行缩放。
默认情况下,此属性为false
。
访问功能
bool | useDesignMetrics() const |
void | setUseDesignMetrics(bool b) |
成员函数文档
[显式]
QTextDocument::QTextDocument(QObject *parent = nullptr)
使用提供的parent构造一个空的QTextDocument。
[显式]
QTextDocument::QTextDocument(const QString &text, QObject *parent = nullptr)
使用指定的text构造一个包含纯文本(未格式化)的QTextDocument,并提供parent。
[虚拟 noexcept]
QTextDocument::~QTextDocument()
销毁文档。
void QTextDocument::addResource(int type, const QUrl &name, const QVariant &resource)
使用type和name作为标识符将资源resource添加到资源缓存中。应从QTextDocument::ResourceType中获取类型值。
例如,您可以添加一个图像作为资源,以便在文档中引用它。
document->addResource(QTextDocument::ImageResource, QUrl("mydata://image.png"), QVariant(image));
可以使用QTextCursor API将图像插入文档中。
QTextImageFormat imageFormat; imageFormat.setName("mydata://image.png"); cursor.insertImage(imageFormat);
或者,您可以使用HTML的img
标签插入图像。
editor->append("<img src=\"mydata://image.png\" />");
void QTextDocument::adjustSize()
调整文档到最后合理的大小。
另请参阅idealWidth(),textWidth和size。
QList<QTextFormat> QTextDocument::allFormats() const
返回文档中使用所有格式的文本格式列表。
int QTextDocument::availableRedoSteps() const
返回可用的重做步骤数。
另请参阅isRedoAvailable()。
int QTextDocument::availableUndoSteps() const
返回可用的撤销步骤数。
另请参阅isUndoAvailable()。
[since 6.0]
qreal QTextDocument::baselineOffset() const
返回文档布局中使用的基准偏移量(百分比)。
此函数从Qt 6.0版开始引入。
另请参阅setBaselineOffset,setSubScriptBaseline,subScriptBaseline,setSuperScriptBaseline和superScriptBaseline。
QTextBlock QTextDocument::begin() const
返回文档的第一个文本块。
另请参阅firstBlock。
[信号]
void QTextDocument::blockCountChanged(int newBlockCount)
当文档中文本块的总数发生变化时,发出此信号。在newBlockCount中传递的值是新的总数。
QChar QTextDocument::characterAt(int pos) const
返回位置pos处的字符,如果位置超出范围,则返回空字符。
另请参阅characterCount。
int QTextDocument::characterCount() const
返回该文档的字符数。
注意: 由于QTextDocument总包含至少一个QChar::ParagraphSeparator,此方法将返回至少1。
另请参阅blockCount()和characterAt()。
[虚函数]
void QTextDocument::clear()
清除文档。
void QTextDocument::clearUndoRedoStacks(QTextDocument::Stacks stacksToClear = UndoAndRedoStacks)
清除指定的stacksToClear堆栈。
此方法清除撤销栈、重做栈或两者(默认)上的所有命令。如果命令被清除,将发出适当的信号,QTextDocument::undoAvailable() 或 QTextDocument::redoAvailable()。
另请参阅 QTextDocument::undoAvailable() 和 QTextDocument::redoAvailable()。
QTextDocument *QTextDocument::clone(QObject *parent = nullptr) const
创建一个新的 QTextDocument 对象,它是该文本文档的一个副本。 parent 是返回的文本文档的父对象。
[信号]
void QTextDocument::contentsChange(int position, int charsRemoved, int charsAdded)
每当文档内容发生变化时都会发出此信号;例如,在插入或删除文本或应用格式时。
提供了关于发生更改的字符在文档中的 位置、移除的字符数(《i translate="no">charsRemoved》)以及添加的字符数(《i translate="no">charsAdded”)的信息。
在文档的布局管理器被通知更改之前发出信号。此钩子允许您实现文档的语法高亮显示。
另请参阅 QAbstractTextDocumentLayout::documentChanged() 和 contentsChanged()。
[信号]
void QTextDocument::contentsChanged()
每当文档内容发生变化时都会发出此信号;例如,在插入或删除文本或应用格式时。
另请参阅 contentsChange()。
[虚拟保护]
QTextObject *QTextDocument::createObject(const QTextFormat &format)
基于给定的 format 创建并返回一个新的文档对象(QTextObject)。
QTextObjects 将始终通过此方法创建,因此如果您在使用文档内的自定义文本对象,则必须重新实现它。
[信号]
void QTextDocument::cursorPositionChanged(const QTextCursor &cursor)
每当编辑操作导致光标位置变化时都会发出此信号。变化的光标通过 cursor 传入。如果与 QTextEdit 类一起使用文档并且需要当光标用箭头键移动时的信号,可以在 QTextEdit 中使用 cursorPositionChanged() 信号。
Qt::CursorMoveStyle QTextDocument::defaultCursorMoveStyle() const
默认光标移动样式由从文档创建的所有 QTextCursor 对象使用。默认值为 Qt::LogicalMoveStyle。
另请参阅 setDefaultCursorMoveStyle()。
QFont QTextDocument::defaultFont() const
返回在文档布局中使用的默认字体。
注意:defaultFont 属性的获取函数。
另请参阅 setDefaultFont()。
[静态,自6.1版本起]
QTextDocument::ResourceProvider QTextDocument::defaultResourceProvider()
返回默认的资源提供者。
此函数是在Qt 6.1版本中引入的。
另请参阅setDefaultResourceProvider、resourceProvider和loadResource。
QTextOption QTextDocument::defaultTextOption() const
默认文本选项用于文档中的所有QTextLayout对象。这允许设置文档的全局属性,如默认的文本换行模式。
注意:默认文本选项属性的获取器。
另请参阅setDefaultTextOption。
QAbstractTextDocumentLayout *QTextDocument::documentLayout() const
返回此文档的文档布局。
另请参阅setDocumentLayout。
[信号]
void QTextDocument::documentLayoutChanged()
当设置新的文档布局时,会发出此信号。
另请参阅setDocumentLayout。
void QTextDocument::drawContents(QPainter *p, const QRectF &rect = QRectF())
使用画家p绘制文档内容,并裁剪至rect。如果rect是一个空矩形(默认)则文档无裁剪绘制。
QTextBlock QTextDocument::end() const
此函数返回一个块以在迭代文档时测试文档的结束。
for (QTextBlock it = doc->begin(); it != doc->end(); it = it.next()) std::cout << it.text().toStdString() << "\n";
返回的块是无效的,表示文档中最后一个块的后续块。您可以使用lastBlock()检索文档中的最后一个有效块。
另请参阅lastBlock。
QTextCursor QTextDocument::find(const QString &subString, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const
在文档中查找字符串subString的下一个出现。搜索从给定的cursor位置开始,除非搜索选项中指定了其他方式,否则从文档的当前位置正向进行。search选项控制搜索的类型。
如果找到subString,则返回一个带有匹配选择的游标;否则返回一个空游标。
如果给定的cursor具有选择,则搜索从选择之后开始;否则从游标的位置开始。
默认情况下,搜索不区分大小写,并且可以在文档的任何地方匹配文本。
QTextCursor QTextDocument::find(const QString &subString, int position = 0, QTextDocument::FindFlags options = FindFlags()) const
这是一个重载函数。
在文档中查找字符串subString的下一个出现位置。搜索从指定的position开始,除非在搜索选项中指定了其他位置。搜索选项控制搜索的类型。
如果找到subString,则返回一个带有匹配选择的游标;否则返回一个空游标。
如果position为0(默认值),则搜索从文档开头开始;否则,从指定位置开始。
QTextCursor QTextDocument::find(const QRegularExpression &expr, int from = 0, QTextDocument::FindFlags options = FindFlags()) const
在文档的同一段落内查找与给出的正则表达式expr匹配的下一个出现位置。
搜索从指定的from位置开始,除非搜索选项中指定了其他位置。搜索选项控制搜索的类型。
如果找到匹配项,则返回一个选中匹配项的光标;否则返回一个空光标。
如果from位置为0(默认值),则搜索从文档开头开始;否则从指定位置开始。
警告:由于历史原因,在expr上设置的敏感选项被忽略。相反,使用options来决定搜索是否敏感。
QTextCursor QTextDocument::find(const QRegularExpression &expr, const QTextCursor &cursor, QTextDocument::FindFlags options = FindFlags()) const
在文档的同一段落内查找与给出的正则表达式expr匹配的下一个出现位置。
搜索从给定的cursor位置开始,除非搜索选项中指定了其他位置。搜索选项控制搜索的类型。
如果找到匹配项,则返回一个选中匹配项的光标;否则返回一个空光标。
如果给定的cursor具有选择,则搜索从选择之后开始;否则从游标的位置开始。
默认情况下,搜索不区分大小写,并且可以在文档的任何地方匹配文本。
QTextBlock QTextDocument::findBlock(int pos) const
返回包含第pos个字符的文本块。
QTextBlock QTextDocument::findBlockByLineNumber(int lineNumber) const
返回包含指定lineNumber的文本块。
另请参阅QTextBlock::firstLineNumber().
QTextBlock QTextDocument::findBlockByNumber(int blockNumber) const
返回指定blockNumber的文本块。
另请参阅QTextBlock::blockNumber().
QTextBlock QTextDocument::firstBlock() const
返回文档的第一个文本块。
qreal QTextDocument::idealWidth() const
返回文本文档的理想宽度。理想宽度是文档实际使用的宽度,不考虑可选对齐方式。它总是 <= size().width()。
另请参阅adjustSize() 和 textWidth.
bool QTextDocument::isEmpty() const
如果文档为空,则返回 true
;否则返回 false
。
bool QTextDocument::isRedoAvailable() const
如果可以重做,则返回 true
;否则返回 false
。
另请参阅isUndoAvailable() 和 availableRedoSteps.
bool QTextDocument::isUndoAvailable() const
如果可以撤销,则返回 true
;否则返回 false
。
另请参阅isRedoAvailable() 和 availableUndoSteps.
QTextBlock QTextDocument::lastBlock() const
返回文档的最后一个(有效)文本块。
int QTextDocument::lineCount() const
返回此文档的行数(如果布局支持此功能)。否则,这等同于块的数量。
另请参阅blockCount() 和 characterCount.
[虚保护虚叫函数]
QVariant QTextDocument::loadResource(int type, const QUrl &name)
从给定 name 的资源中加载数据指定 type。
该函数由富文本引擎调用来请求 `QTextDocument` 直接存储但与之关联的数据。例如,图像通过 `QTextImageFormat` 对象的属性引用间接引用。
由 Qt 调用时,type 是 `QTextDocument::ResourceType` 的某个值之一。
如果 `QTextDocument` 是一个 QObject 的子对象,该对象具有如 `QTextEdit`、`QTextBrowser` 或 `QTextDocument` 本身的 `loadResource` 方法等可调用的虚函数,则默认实现尝试从父对象检索数据。
注意:此函数可以通过元对象系统从 QML 调用。请参阅 Q_INVOKABLE。
另请参阅QTextDocument::ResourceProvider.
void QTextDocument::markContentsDirty(int position, int length)
将指定的 position 和 length 的内容标记为“脏”,通知文档它需要再次布局。
QString QTextDocument::metaInformation(QTextDocument::MetaInformation info) const
返回关于文档的指定类型 info 的元信息。
另请参阅setMetaInformation().
[信号]
void QTextDocument::modificationChanged(bool changed)
每当文档内容以影响修改状态的方式发生更改时,都会发出此信号。如果 changed 为 true,则表示文档已更改;否则为 false。
例如,在对文档调用setModified(false)之后插入文本会导致信号被发出。如果您撤销该操作,使文档返回原始未更改状态,信号将再次被发出。
QTextObject *QTextDocument::object(int objectIndex) const
返回与给定 objectIndex 关联的文本对象。
QTextObject *QTextDocument::objectForFormat(const QTextFormat &f) const
返回与格式 f 关联的文本对象。
int QTextDocument::pageCount() const
返回此文档中的页数。
void QTextDocument::print(QPagedPaintDevice *printer) const
将文档打印到指定的 printer。在与此函数一起使用之前,必须设置 QPagedPaintDevice。
这是一个方便的方法,用于将整个文档打印到打印机。
如果文档在 pageSize() 属性中已通过指定高度分页,则按原样打印。
如果文档没有分页,例如在 QTextEdit 中使用的文档,则创建文档的临时副本,并根据绘图设备纸张矩形的尺寸将副本拆分为多页。默认情况下,文档内容周围设置2厘米的边距。此外,当前页码打印在每个页面的底部。
另请参阅 QTextEdit::print。
void QTextDocument::redo(QTextCursor *cursor)
如果有可用的重做操作,则重做文档上的最后编辑操作。
提供的 cursor 被置于重做编辑操作位置的最结尾。
[slot]
void QTextDocument::redo()
这是一个重载函数。
如果有可用的重做操作,则重做文档上的最后编辑操作。
[signal]
void QTextDocument::redoAvailable(bool available)
每次重做操作可用(available 为 true)或不可用(available 为 false)时,都会发出此信号。
QVariant QTextDocument::resource(int type, const QUrl &name) const
从给定 name 的资源返回指定 type 的数据。
该函数由富文本引擎调用来请求 `QTextDocument` 直接存储但与之关联的数据。例如,图像通过 `QTextImageFormat` 对象的属性引用间接引用。
资源在文档中内部缓存。如果在缓存中找不到资源,则调用 loadResource 以尝试加载资源。loadResource 应使用 addResource 将资源添加到缓存。
如果loadResource未加载资源,则如果设置了,将调用resourceProvider,然后是defaultResourceProvider。请注意,提供者返回的结果将不会自动添加到缓存中。
相关内容QTextDocument::ResourceType 和 resourceProvider。
[since 6.1]
QTextDocument::ResourceProvider QTextDocument::resourceProvider() const
返回此文本文档的资源提供者。
此函数是在Qt 6.1版本中引入的。
相关内容setResourceProvider()、defaultResourceProvider() 和 loadResource。
int QTextDocument::revision() const
返回文档的版本(如果启用了撤销)。
在没有修改的文档编辑时,版本将保证增加。
相关内容QTextBlock::revision() 和 isModified。
QTextFrame *QTextDocument::rootFrame() const
返回文档的根框架。
[since 6.0]
void QTextDocument::setBaselineOffset(qreal baseline)
将基线设置为相对于字体高度的百分比,用于文档布局的基线为 baseline。默认值是0。正值将文本向上移动相应的%;负值将文本向下移动。
此函数从Qt 6.0版开始引入。
相关内容baselineOffset、setSubScriptBaseline、subScriptBaseline、setSuperScriptBaseline 和 superScriptBaseline。
void QTextDocument::setDefaultCursorMoveStyle(Qt::CursorMoveStyle style)
设置默认的光标移动样式为给定的 style。
void QTextDocument::setDefaultFont(const QFont &font)
设置文档布局中使用的默认 font。
注意:属性 defaultFont 的设置函数。
相关内容defaultFont。
[static, since 6.1]
void QTextDocument::setDefaultResourceProvider(const QTextDocument::ResourceProvider &provider)
将默认资源提供者设置为 provider。
默认提供者将由没有显式设置提供者的所有 QTextDocuments 使用。
此函数是在Qt 6.1版本中引入的。
相关内容defaultResourceProvider、setResourceProvider 和 loadResource。
void QTextDocument::setDefaultTextOption(const QTextOption &option)
将默认文本选项设置为option。
注意:属性defaultTextOption的设置函数。
void QTextDocument::setDocumentLayout(QAbstractTextDocumentLayout *layout)
将文档设置为使用给定的layout。将删除之前的布局。
void QTextDocument::setHtml(const QString &html)
用给定的HTML格式文本替换文档的全部内容在html字符串中。当此函数被调用时,撤销/重做历史将被重置。
尽可能尊重HTML格式;例如,“<b>粗体</b> 文本”将生成文本,其中第一个单词具有使它显示为粗体的字体粗细:“粗体 文本”。
要选择除默认的 "screen" 规则之外的其他CSS媒体规则,请使用带有 'info' 参数为 'CssMedia' 的 setMetaInformation()。
注意:当创建包含HTML的QString并将其传递给setHtml()时,调用方负责确保文本被正确解码。
参见:setPlainText,支持的HTML子集和setMetaInformation。
void QTextDocument::setIndentWidth(qreal width)
设置用于文本列表和文本块缩进的width。
QTextListFormat 和 QTextBlockFormat 的缩进属性指定此值的倍数。默认缩进宽度是40。
注意:属性 indentWidth 的设置函数。
参见:indentWidth。
void QTextDocument::setMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub)
用给定的Markdown格式文本替换文档的全部内容在markdown字符串中,支持给定的features。默认情况下,包括所有支持的GitHub样式Markdown功能;传递MarkdownDialectCommonMark
以进行更基础的解析。
尽可能尊重Markdown格式;例如,“*粗体* 文本”将生成具有强调外观的第一个单词的文本。
在 markdown 字符串中包含的HTML的解析方式与setHtml中的方式相同;但是,不支持HTML块内的Markdown格式。
可以通过features参数启用或禁用解析器的某些功能
常量 | 描述 |
---|---|
MarkdownNoHTML | Markdown文本中的任何HTML标签都将被丢弃 |
MarkdownDialectCommonMark | 解析器只支持由CommonMark标准化的功能 |
MarkdownDialectGitHub | 解析器支持GitHub方言 |
默认为 MarkdownDialectGitHub
。
调用此函数将重置撤销/重做历史。
void QTextDocument::setMetaInformation(QTextDocument::MetaInformation info, const QString &string)
将文档的由 info 指定的元信息设置为给定的 string。
另请参阅 metaInformation()。
void QTextDocument::setPlainText(const QString &text)
用给定的普通 text 替换文档的全部内容。调用此函数将重置撤销/重做历史。
另请参阅 setHtml()。
[since 6.1]
void QTextDocument::setResourceProvider(const QTextDocument::ResourceProvider &provider)
设置文本文档的资源提供者为 provider。
此函数是在Qt 6.1版本中引入的。
另请参阅 resourceProvider() 和 loadResource()。
[since 6.0]
void QTextDocument::setSubScriptBaseline(qreal baseline)
将文档布局中使用的默认下标的基线设置为字体高度的百分比 baseline。默认值为 16.67%(高度六分之一)。
此函数从Qt 6.0版开始引入。
另请参阅 subScriptBaseline()、setSuperScriptBaseline()、superScriptBaseline()、setBaselineOffset() 和 baselineOffset()。
[since 6.0]
void QTextDocument::setSuperScriptBaseline(qreal baseline)
将文档布局中使用的默认上标的基线设置为字体高度的百分比 baseline。默认值为 50%(高度二分之一)。
此函数从Qt 6.0版开始引入。
另请参阅 superScriptBaseline()、setSubScriptBaseline()、subScriptBaseline()、setBaselineOffset() 和 baselineOffset()。
[since 6.0]
qreal QTextDocument::subScriptBaseline() const
返回文档布局中使用的上标基线占字体高度的百分比。
此函数从Qt 6.0版开始引入。
另请参阅 setSubScriptBaseline()、setSuperScriptBaseline()、superScriptBaseline()、setBaselineOffset() 和 baselineOffset()。
[since 6.0]
qreal QTextDocument::superScriptBaseline() const
返回文档布局中使用的上标基线占字体高度的百分比。
此函数从Qt 6.0版开始引入。
另请参阅 setSuperScriptBaseline(),setSubScriptBaseline(),subScriptBaseline(),setBaselineOffset(),以及 baselineOffset。
QString QTextDocument::toHtml() const
返回包含文档的HTML表示的字符串。
文档内容指定它的编码为UTF-8。如果你之后将返回的html字符串转换为字节数组以在网络中传输或将数据保存到磁盘,你应该使用 QString::toUtf8() 将字符串转换为 QByteArray。
另请参阅支持的HTML子集。
QString QTextDocument::toMarkdown(QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) const
返回包含给定 features 的文档Markdown表示的字符串,或者在写入失败的情况下返回空字符串。
另请参阅 setMarkdown。
QString QTextDocument::toPlainText() const
返回文档中包含的纯文本。如果你想使用格式信息,则应使用 QTextCursor。
此函数返回的内容与 toRawText() 相同,但会将一些Unicode字符替换为ASCII替代字符。特别是,不间断空格(U+00A0)被替换为常规空格(U+0020),段落分隔符(U+2029)和行分隔符(U+2028)都替换为换行符(U+000A)。如果你需要文档的确切内容,请使用 toRawText()。
注意:嵌入的对象,如图片,由Unicode值U+FFFC(对象替换字符)表示。
另请参阅 toHtml。
QString QTextDocument::toRawText() const
返回包含文档的原始文本,不包含任何格式信息。如果你想使用格式信息,请使用 QTextCursor。
另请参阅 toPlainText。
void QTextDocument::undo(QTextCursor *cursor)
如果可撤销,则撤销文档中的最后一个编辑操作。提供的 cursor 定位于撤销编辑操作的位置的末尾。
有关详情,请参阅 Qt 撤销框架 文档。
另请参阅 undoAvailable() 和 isUndoRedoEnabled。
[slot]
void QTextDocument::undo()
这是一个重载函数。
[signal]
void QTextDocument::undoAvailable(bool available)
每当撤销操作变得可用(available 为真)或不可用(available 为假)时,将发出此信号。
有关详情,请参阅 Qt 撤销框架 文档。
另请参阅 undo() 和 isUndoRedoEnabled。
[信号]
void QTextDocument::undoCommandAdded()
每次在 QTextDocument 中添加一个撤销级别时,都会发出此信号。
© 2024 The Qt Company Ltd. 此文档内的文档贡献均属于各自所有者的版权。提供的文档根据 GNU自由文档许可证第1.3版 的条款进行许可,由自由软件基金会 发布。Qt 及相关标志是 The Qt Company Ltd. 在芬兰和/或其他国家和地区的商标。所有其他商标均为各自所有者的财产。