本页内容

QTextDocumentFragment Class

QTextDocumentFragment 类表示来自QTextDocument 的一段格式化文本。更多内容...

标题: #include <QTextDocumentFragment>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

注意:该类中的所有函数均为可重入函数。

公共函数

QTextDocumentFragment()
QTextDocumentFragment(const QTextCursor &cursor)
QTextDocumentFragment(const QTextDocument *document)
QTextDocumentFragment(const QTextDocumentFragment &other)
~QTextDocumentFragment()
bool isEmpty() const
QString toHtml() const
(since 6.4) QString toMarkdown(QTextDocument::MarkdownFeatures features = QTextDocument::MarkdownDialectGitHub) const
QString toPlainText() const
(since 6.4) QString toRawText() const
QTextDocumentFragment &operator=(const QTextDocumentFragment &other)

静态公共成员

QTextDocumentFragment fromHtml(const QString &text, const QTextDocument *resourceProvider = nullptr)
(since 6.4) QTextDocumentFragment fromMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = QTextDocument::MarkdownDialectGitHub)
QTextDocumentFragment fromPlainText(const QString &plainText)

详细说明

QTextDocumentFragment 是一个富文本片段,可以插入到QTextDocument 中。文档片段可以从QTextDocument 、QTextCursor 的选定区域或另一个文档片段创建。文档片段也可以通过静态函数fromPlainText() 和fromHtml() 创建。

文档片段的内容可通过toRawText() 函数以原始文本形式获取,通过toPlainText() 以 ASCII 格式获取,通过toHtml() 以 HTML 格式获取,或通过toMarkdown() 以 Markdown 格式获取。

成员函数文档

QTextDocumentFragment::QTextDocumentFragment()

创建一个空的 QTextDocumentFragment。

另请参阅 ` isEmpty()`。

[explicit] QTextDocumentFragment::QTextDocumentFragment(const QTextCursor &cursor)

根据cursor 的选定内容创建一个QTextDocumentFragment。如果光标未选中任何内容,则创建的片段为空。

另请参阅 isEmpty() 和QTextCursor::selection()。

[explicit] QTextDocumentFragment::QTextDocumentFragment(const QTextDocument *document)

将给定的document 转换为QTextDocumentFragment。请注意,QTextDocumentFragment仅存储文档内容,不存储文档标题等元数据。

QTextDocumentFragment::QTextDocumentFragment(const QTextDocumentFragment &other)

复制构造函数。创建other 片段的副本。

[noexcept] QTextDocumentFragment::~QTextDocumentFragment()

销毁该文档片段。

[static] QTextDocumentFragment QTextDocumentFragment::fromHtml(const QString &text, const QTextDocument *resourceProvider = nullptr)

根据给定的text 中的任意 HTML 片段,返回一个QTextDocumentFragment 。格式将尽可能保留;例如,“<b>bold</b>” 将变成一个文档片段,其中包含文本“bold”,且采用粗体格式。

如果提供的 HTML 包含对外部资源(如导入的样式表)的引用,则这些资源将通过resourceProvider 加载。

[static, since 6.4] QTextDocumentFragment QTextDocumentFragment::fromMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = QTextDocument::MarkdownDialectGitHub)

根据给定的markdown 文本和指定的features ,返回一个QTextDocumentFragment 。默认使用GitHub方言。

格式将尽可能保留;例如,**bold** 将转换为一个包含文本“bold”且采用粗体字符样式的文档片段。

注意: 不支持加载 外部资源。

此函数自 Qt 6.4 起引入。

[static] QTextDocumentFragment QTextDocumentFragment::fromPlainText(const QString &plainText)

返回一个包含给定plainText 的文档片段。

将此类片段插入到QTextDocument 时,会使用用于插入的QTextCursor 的当前字符格式作为文本的格式。

bool QTextDocumentFragment::isEmpty() const

如果片段为空,则返回true ;否则返回false 。

QString QTextDocumentFragment::toHtml() const

返回文档片段的内容,格式为 HTML。

另请参阅 toPlainText()、toMarkdown() 和QTextDocument::toHtml()。

[since 6.4] QString QTextDocumentFragment::toMarkdown(QTextDocument::MarkdownFeatures features = QTextDocument::MarkdownDialectGitHub) const

返回文档片段的内容,格式为 Markdown,并采用指定的features 。默认使用 GitHub 方言。

该函数在 Qt 6.4 中引入。

另请参阅 toPlainText() 和QTextDocument::toMarkdown()。

QString QTextDocumentFragment::toPlainText() const

该函数的返回结果与toRawText()相同,但会将某些Unicode字符替换为ASCII替代字符。 具体来说,不可分隔空格(U+00A0)会被替换为普通空格(U+0020),而段落分隔符(U+2029)和行分隔符(U+2028)都会被替换为换行符(U+000A)。 如果您需要文档的精确内容,请改用toRawText()。

另请参阅 toHtml()、toMarkdown() 以及toRawText()。

[since 6.4] QString QTextDocumentFragment::toRawText() const

返回文档片段的文本,作为原始文本(即不包含任何格式信息)。

该函数自 Qt 6.4 起引入。

另请参阅 toHtml()、toMarkdown() 以及toPlainText()。

QTextDocumentFragment &QTextDocumentFragment::operator=(const QTextDocumentFragment &other)

将other 片段分配给此片段。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.