QTextDocument 类

QTextDocument 类存储格式化文本。 更多...

头文件 #include <QTextDocument>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui
继承自 QObject

注意: 类中所有函数均 可重入

公共类型

枚举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()
voidaddResource(int type, const QUrl &name, const QVariant &resource)
voidadjustSize()
QList<QTextFormat>allFormats() const
intavailableRedoSteps() 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
voidsetBaseUrl(const QUrl &url)
(since 6.0) voidsetBaselineOffset(qreal baseline)
voidsetDefaultCursorMoveStyle(Qt::CursorMoveStyle style)
voidsetDefaultFont(const QFont &font)
voidsetDefaultStyleSheet(const QString &sheet)
voidsetDefaultTextOption(const QTextOption &option)
voidsetDocumentLayout(QAbstractTextDocumentLayout *layout)
voidsetDocumentMargin(qreal margin)
voidsetHtml(const QString &html)
voidsetIndentWidth(qreal width)
voidsetLayoutEnabled(bool b)
voidsetMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub)
voidsetMaximumBlockCount(int maximum)
voidsetMetaInformation(QTextDocument::MetaInformation info, const QString &string)
voidsetPageSize(const QSizeF &size)
voidsetPlainText(const QString &text)
(since 6.1) voidsetResourceProvider(const QTextDocument::ResourceProvider &provider)
(since 6.0) voidsetSubScriptBaseline(qreal baseline)
(since 6.0) voidsetSuperScriptBaseline(qreal baseline)
voidsetTextWidth(qreal width)
voidsetUndoRedoEnabled(bool enable)
voidsetUseDesignMetrics(bool b)
QSizeFsize() const
(自6.0起) qrealsubScriptBaseline() const
(自6.0起) qrealsuperScriptBaseline() const
qrealtextWidth() const
QStringtoHtml() const
QStringtoMarkdown(QTextDocument::MarkdownFeatures features = MarkdownDialectGitHub) const
QStringtoPlainText() const
QStringtoRawText() const
voidundo(QTextCursor *cursor)
booluseDesignMetrics() const

公共槽

void重做()
voidsetModified(bool m = true)
void撤销()

信号

voidbaseUrlChanged(const QUrl &url)
voidblockCountChanged(int newBlockCount)
voidcontentsChange(int position, int charsRemoved, int charsAdded)
void内容已更改()
voidcursorPositionChanged(const QTextCursor &cursor)
void文档布局已更改()
voidmodificationChanged(bool changed)
voidredoAvailable(bool available)
voidundoAvailable(bool available)
void撤销命令已添加()

静态公开成员

(自6.1起) QTextDocument::ResourceProviderdefaultResourceProvider()
(since 6.1) voidsetDefaultResourceProvider(const QTextDocument::ResourceProvider &provider)

受保护的函数

虚拟 QTextObject *createObject(const QTextFormat &format)
虚 QVariantsloadResource(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 的撤销/重做操作:

  • 插入或删除字符。在同一文本块内的一系列插入或删除被视为一个单独的可撤销/重做操作。
  • 插入或删除文本块。在单个操作中一系列插入或删除(例如通过选择然后删除文本)被视为一个单独的可撤销/重做操作。
  • 文本字符格式更改。
  • 文本块格式更改。
  • 文本块组格式更改。

另请参阅QTextCursorQTextEdit富文本处理

成员类型文档

枚举 QTextDocument::FindFlag
标志 QTextDocument::FindFlags

此枚举描述了 QTextDocument 的查找功能可用的选项。选项可以从以下列表中 OR 一起使用

常量描述
QTextDocument::FindBackward0x00001搜索方向相反,即反向搜索而不是正向搜索。
QTextDocument::FindCaseSensitively0x00002默认情况下,搜索不区分大小写。指定此选项将行为更改为区分大小写的搜索操作。
QTextDocument::FindWholeWords0x00004使搜索仅匹配完整的单词。

FindFlags 类型是 QFlags<FindFlag> 的 typedef。它存储 FindFlag 值的 OR 组合。

enum QTextDocument::MetaInformation

此枚举描述了可以添加到文档的不同类型的元信息。

常量描述
QTextDocument::DocumentTitle0文档的标题。
QTextDocument::DocumentUrl1文档的 URL。 loadResource() 函数使用此 URL 作为加载相对资源的基准。
QTextDocument::CssMedia2当调用 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

此枚举描述了由 QTextDocumentloadResource() 函数或由 QTextBrowser::setSource() 加载的资源类型。

常量描述
QTextDocument::UnknownResource0没有加载资源,或资源类型未知。
QTextDocument::HtmlResource1资源包含 HTML。
QTextDocument::ImageResource2资源包含图像数据。目前支持的数据类型是 QMetaType::QPixmapQMetaType::QImage。如果相应的变量类型为 QMetaType::QByteArray,则 Qt 尝试使用 QImage::loadFromData 加载图像。QMetaType::QIcon 目前不支持。图标需要首先转换为支持的类型之一,例如使用 QIcon::pixmap
QTextDocument::StyleSheetResource3资源包含 CSS。
QTextDocument::MarkdownResource4资源包含 Markdown。
QTextDocument::UserResource100用户定义资源类型的第一个可用值。

另请参阅loadResource() 和 QTextBrowser::sourceType

enum QTextDocument::Stacks

常量描述
QTextDocument::UndoStack0x01撤销堆栈。
QTextDocument::RedoStack0x02重做堆栈。
QTextDocument::UndoAndRedoStacksUndoStack | RedoStack撤销和重做堆栈。

属性文档

baseUrl : QUrl

此属性包含用于在文档中解析相对资源 URL 的基准 URL。

资源 URL 被解析为与基准 URL 的目标相同的目录中,意味着路径中最后 '/' 之后的所有部分将被忽略。

基准 URL相对 URL解析后的 URL
file:///路径/to/contentimages/logo.pngfile:///路径/to/images/logo.png
file:///路径/to/content/images/logo.pngfile:///路径/to/content/images/logo.png
file:///路径/to/content/index.htmlimages/logo.pngfile:///路径/to/content/images/logo.png
file:///路径/to/content/images/../images/logo.pngfile:///路径/to/content/images/logo.png

访问功能

QUrlbaseUrl() const
voidsetBaseUrl(const QUrl &url)

通知信号

voidbaseUrlChanged(const QUrl &url)

[只读] blockCount : const int

此属性保存文档中的文本块数量。

在包含表格或框架的文档中,此属性的值未定义。

默认情况下,如果已定义,此属性包含值为1的值。

访问功能

intblockCount() const

另请参阅lineCount() 和 characterCount()。

defaultFont : QFont

此属性保存用于显示文档文本的默认字体。

访问功能

QFontdefaultFont() const
voidsetDefaultFont(const QFont &font)

defaultStyleSheet : QString

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

样式表需要符合CSS 2.1语法。

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

访问功能

QStringdefaultStyleSheet() const
voidsetDefaultStyleSheet(const QString &sheet)

另请参阅支持的HTML子集

defaultTextOption : QTextOption

此属性保存将设置在文档中所有 QTextLayout 上的默认文本选项。

当创建 QTextBlock 时,会在其 QTextLayout 上设置默认文本选项。这允许设置文档的全局属性,例如默认文本换行模式。

访问功能

QTextOptiondefaultTextOption() const
voidsetDefaultTextOption(const QTextOption &option)

documentMargin : qreal

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

访问功能

qrealdocumentMargin() const
voidsetDocumentMargin(qreal margin)

indentWidth : qreal

返回用于文本列表和文本块缩进的宽度。

QTextListFormatQTextBlockFormat 的缩进属性指定此值的倍数。默认缩进宽度为40。

访问功能

qrealindentWidth() const
voidsetIndentWidth(qreal width)

[自6.4以来] layoutEnabled : bool

该属性表示QTextDocument在每个更改之后是否应重新计算布局

如果将此属性设置为true,则对文档的任何更改都会触发布局,使一切按预期工作,但需要消耗时间。

在处理多个更改时(不仅限于文本内容,还包括默认字体、默认文本选项等)暂时禁用布局可以节省时间,以确保文档只在使用完毕时进行一次布局。这在文本宽度或页面大小尚未确定的情况下非常有用。

默认情况下,此属性为true

此属性在Qt 6.4中引入。

访问功能

boolisLayoutEnabled() const
voidsetLayoutEnabled(bool b)

另请参阅setTextWidth

maximumBlockCount : int

指定文档中的段落数量的限制。

指定文档可拥有的最大段落数量。如果文档中的段落数量超过此属性指定的数量,则将从文档开头删除段落数。

负数或零值表示文档可以包含无限数量的段落。

默认值为0。

请注意,设置此属性将立即将此限制应用于文档内容。

设置此属性还可以禁用撤销/重做历史。

在包含表格或框架的文档中,此属性是未定义的。

访问功能

intmaximumBlockCount() const
voidsetMaximumBlockCount(int maximum)

modified : bool

此属性表示文档是否已被用户修改。

默认情况下,此属性为false

访问功能

boolisModified() const
voidsetModified(bool m = true)

另请参阅modificationChanged

pageSize : QSizeF

该属性表示用于布局文档的页面大小。

单位由底层绘图设备确定。当在屏幕上绘制时,大小以逻辑像素为单位测量,当在打印机上绘制时,以点(1/72英寸)为单位测量。

对于新创建的空文档,默认情况下,此属性包含一个未定义的大小。

访问功能

QSizeFpageSize() const
voidsetPageSize(const QSizeF &size)

另请参阅modificationChanged

[只读] size : const QSizeF

该属性表示文档的实际大小。这等价于documentLayout()->documentSize();

文档的大小可以通过设置文本宽度或设置整个页面大小来更改。

请注意,宽度始终 >=pageSize().width()。

对于新创建的空文档,默认情况下,此属性包含一个依赖于配置的大小。

访问功能

QSizeFsize() const

另请参阅setTextWidthsetPageSizeidealWidth

textWidth : qreal

文本宽度指定了文档中文本的首选宽度。如果文本(或一般内容)比指定的宽度更宽,它将被拆分为多行并垂直增长。如果文本无法拆分为多行以适应指定的文本宽度,它将更大,并且size()和idealWidth()属性将反映这一点。

如果将文本宽度设置为-1,则除非通过明确的换行符或新段落强制执行,否则文本将不会拆分为多行。

默认值是-1。

设置文本宽度还会将页面高度设置为-1,导致文档以连续的方式垂直增长或收缩。如果您想要文档布局将文本拆分为多页,那么您必须设置pageSize属性。

访问功能

qrealtextWidth() const
voidsetTextWidth(qreal width)

另外参见 size(), idealWidth(), 和 pageSize().

undoRedoEnabled : bool

此属性表示是否为此文档启用撤销/重做功能

默认为true。如果禁用,撤销堆栈将被清空,无法向其中添加任何项目。

访问功能

boolisUndoRedoEnabled() const
voidsetUndoRedoEnabled(bool enable)

useDesignMetrics : bool

此属性表示文档是否使用字体设计指标来提高文本布局的准确性

如果此属性设置为true,布局将使用设计指标。否则,将使用在QAbstractTextDocumentLayout::setPaintDevice()上设置的培养器指标。

使用设计指标使布局的宽度不再依赖于提示和像素舍入。这意味着基于绘制设备指标的文本布局成为可能,因为宽度会以更线性的方式根据绘制设备指标进行缩放。

默认情况下,此属性为false

访问功能

booluseDesignMetrics() const
voidsetUseDesignMetrics(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)

使用typename作为标识符将资源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(),textWidthsize

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版开始引入。

另请参阅setBaselineOffsetsetSubScriptBaselinesubScriptBaselinesetSuperScriptBaselinesuperScriptBaseline

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版本中引入的。

另请参阅setDefaultResourceProviderresourceProviderloadResource

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)

将指定的 positionlength 的内容标记为“脏”,通知文档它需要再次布局。

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::ResourceTyperesourceProvider

[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版开始引入。

相关内容baselineOffsetsetSubScriptBaselinesubScriptBaselinesetSuperScriptBaselinesuperScriptBaseline

void QTextDocument::setDefaultCursorMoveStyle(Qt::CursorMoveStyle style)

设置默认的光标移动样式为给定的 style

相关内容defaultCursorMoveStyle

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版本中引入的。

相关内容defaultResourceProvidersetResourceProviderloadResource

void QTextDocument::setDefaultTextOption(const QTextOption &option)

将默认文本选项设置为option

注意:属性defaultTextOption的设置函数。

参见:defaultTextOption

void QTextDocument::setDocumentLayout(QAbstractTextDocumentLayout *layout)

将文档设置为使用给定的layout。将删除之前的布局。

参见:documentLayoutChanged

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

QTextListFormatQTextBlockFormat 的缩进属性指定此值的倍数。默认缩进宽度是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参数启用或禁用解析器的某些功能

常量描述
MarkdownNoHTMLMarkdown文本中的任何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. 在芬兰和/或其他国家和地区的商标。所有其他商标均为各自所有者的财产。