TextDocument QML Type (Uncreatable)
这是对TextEdit 中底层服务QTextDocument 的封装。更多内容...
| Import Statement: | import QtQuick |
| In C++: | QQuickTextDocument |
| Status: | Technology preview |
此类型处于技术预览阶段,可能会有变动。
注意:此类型不可创建,无法在 QML 中实例化。
属性
- errorString : string
(technology preview) - modified : bool
(technology preview) - source : url
(technology preview) - status : enumeration
(technology preview)
方法
详细说明
要将文本加载到文档中,请设置source 属性。如果用户随后修改了文本并希望保存同一文档,请调用save()将其再次保存到同一源文件中(仅当it's a local file 时)。或者调用saveAs()将其保存到另一个文件中。
该类无法在 QML 中实例化,但可通过TextEdit::textDocument 访问。
注意: 目前所有 加载和保存操作均以同步方式进行。如果source 是速度较慢的网络驱动器,这可能会阻塞用户界面。此问题可能会在 Qt 的未来版本中得到改进。
注意:此 API 目前处于技术预览阶段,在 Qt 的未来版本中可能会发生变更。
属性文档
errorString : string [read-only, technology preview]
此属性处于技术预览阶段,可能会有变动。
该属性保存一个易于理解的字符串,用于描述加载或保存过程中发生的错误(如有);否则,该属性为空字符串。
该属性自 Qt 6.7 起引入。
另请参阅 status 、source 、save() 以及saveAs()。
modified : bool [technology preview]
此属性处于技术预览阶段,可能会有变动。
该属性用于标识文档自上次加载或保存以来是否已被用户修改。默认情况下,该属性的值为false 。
与QTextDocument::modified 类似,您可以设置modified属性:例如,将其设置为false ,以便将source 属性设置为另一个URL(从而舍弃用户的更改)。
该属性在 Qt 6.7 中引入。
另请参阅 QTextDocument::modified 。
source : url [technology preview]
此属性处于技术预览阶段,可能会有变动。
QQuickTextDocument 可处理 Qt 支持的任何文本格式,这些格式可从 Qt 支持的任何 URL 方案中加载。
URL 可以是绝对路径,也可以是相对于组件 URL 的相对路径。
当文档的“modified ”状态为“true ”时,无法更改source 属性。如果用户修改了文档内容,您应提示用户是否要“save()”,否则请在将source属性设置为其他URL之前,通过设置modified = false 来丢弃更改。
该属性在 Qt 6.7 中引入。
另请参阅 QTextDocumentWriter::supportedDocumentFormats()。
status : enumeration [read-only, technology preview]
此属性处于技术预览阶段,可能会发生变更。
该属性用于表示文档的加载或保存状态。其取值可能为以下之一:
| 常量 | 描述 |
|---|---|
TextDocument.Null | 尚未加载任何文件 |
TextDocument.Loading | 已开始从source 读取数据 |
TextDocument.Loaded | 读取已成功完成 |
TextDocument.Saving | 在调用save() 或saveAs() 后,已开始写入文件 |
TextDocument.Saved | 写入已成功完成 |
TextDocument.ReadError | 从source |
TextDocument.WriteError | 在调用save() 或saveAs() 时发生错误 |
TextDocument.NonLocalFileError | saveAs() 调用时,URL 指向的是远程资源而非本地文件 |
请使用此状态来提供更新或以某种方式响应状态变化。例如,您可以:
- 触发状态变更:
State { name: 'loaded' when: textEdit.textDocument.status == textEdit.textDocument.Loaded } - 实现
onStatusChanged信号处理程序:TextEdit { onStatusChanged: { if (textDocument.status === textDocument.Loaded) console.log('Loaded') } } - 绑定到状态值:
TextEdit { id: edit width: 300 height: 200 textFormat: TextEdit.MarkdownText textDocument.source: "example.md" wrapMode: TextEdit.WordWrap Text { anchors { bottom: parent.bottom right: parent.right } color: edit.textDocument.status === TextDocument.Loaded ? "darkolivegreen" : "tomato" text: switch (edit.textDocument.status) { case TextDocument.Loading: return qsTr("Loading ") + edit.textDocument.source case TextDocument.Loaded: return qsTr("Loaded ") + edit.textDocument.source default: return edit.textDocument.errorString } } }
该属性在 Qt 6.7 中引入。
另请参阅 errorString 、source 、save() 以及saveAs()。
方法文档
[technology preview] void save()
此方法处于技术预览阶段,可能会有变动。
将内容保存到由 `source` 指定的同一文件和格式中。
注意:您可以将 内容保存到本地文件,或在 Android 设备上保存到content 格式的 URL。
此方法在 Qt 6.7 中引入。
[technology preview] void saveAs(url url)
此方法处于技术预览阶段,可能会有变动。
将内容保存到由 `url` 指定的文件和格式中。
url 中的文件扩展名指定了文件格式(由QMimeDatabase::mimeTypeForUrl() 确定)。
注意:您可以 保存到本地文件,或在 Android 上保存到content URL。
此方法在 Qt 6.7 中引入。
© 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.