本页内容

QTextDocumentWriter Class

QTextDocumentWriter 类提供了一个与格式无关的接口,用于将QTextDocument 写入文件或其他设备。更多内容...

头文件: #include <QTextDocumentWriter>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

公共函数

QTextDocumentWriter()
QTextDocumentWriter(QIODevice *device, const QByteArray &format)
QTextDocumentWriter(const QString &fileName, const QByteArray &format = QByteArray())
~QTextDocumentWriter()
QIODevice *device() const
QString fileName() const
QByteArray format() const
void setDevice(QIODevice *device)
void setFileName(const QString &fileName)
void setFormat(const QByteArray &format)
bool write(const QTextDocument *document)
bool write(const QTextDocumentFragment &fragment)

静态公共成员

QList<QByteArray> supportedDocumentFormats()

详细说明

要写入文档,请使用文件名或设备对象构造一个 QTextDocumentWriter 对象,并指定要写入的文档格式。您可以先构造一个写入器,稍后使用setFormat() 设置格式。

调用write() 将文档写入设备。如果文档写入成功,该函数将返回true 。但是,如果在写入文档时发生错误,则返回 false。

调用supportedDocumentFormats() 可获取 QTextDocumentWriter 支持的输出格式列表。

由于支持的输出格式功能差异较大,该写入器仅会针对每种格式输出相应的对象子集。这通常包括文档中包含的格式化文本和图像。

成员函数文档

QTextDocumentWriter::QTextDocumentWriter()

创建一个空的 QTextDocumentWriter 对象。在写入之前,必须先调用setFormat() 来设置文档格式,然后调用setDevice() 或setFileName()。

QTextDocumentWriter::QTextDocumentWriter(QIODevice *device, const QByteArray &format)

创建一个 QTextDocumentWriter 对象,用于将内容写入给定的device ,并采用由format 指定的文档格式。

[explicit] QTextDocumentWriter::QTextDocumentWriter(const QString &fileName, const QByteArray &format = QByteArray())

创建一个 QTextDocumentWriter 对象,该对象将使用由format 指定的文档格式,将内容写入名为fileName 的文件。如果未提供format ,QTextDocumentWriter 将通过检查fileName 的文件扩展名来检测文档格式。

[noexcept] QTextDocumentWriter::~QTextDocumentWriter()

销毁QTextDocumentWriter 对象。

QIODevice *QTextDocumentWriter::device() const

返回当前已分配的设备;如果未分配任何设备,则返回nullptr 。

另请参阅 setDevice()。

QString QTextDocumentWriter::fileName() const

如果当前分配的设备是QFile ,或者已调用setFileName(),则该函数返回待写入文件的名称。在所有其他情况下,它返回一个空字符串。

另请参阅 setFileName() 和setDevice()。

QByteArray QTextDocumentWriter::format() const

返回用于写入文档的格式。

另请参阅 setFormat()。

void QTextDocumentWriter::setDevice(QIODevice *device)

将写入器的设备设置为指定的device 。如果已设置了设备,则会移除旧设备,但其他设置保持不变。

如果该设备尚未打开,QTextDocumentWriter 将通过调用 open() 尝试以WriteOnly 模式打开该设备。

注意: 对于某些设备(例如QProcess 、QTcpSocket 和QUdpSocket ),在打开设备之前需要进行一些配置,因此此方法 对这些设备 无效。

另请参阅 device() 和setFileName()。

void QTextDocumentWriter::setFileName(const QString &fileName)

将要写入fileName 的文件名称设置为该值。在内部,QTextDocumentWriter 会创建一个QFile 文件,并以WriteOnly 模式打开它,然后在写入文档时使用该文件。

另请参阅 fileName() 和setDevice()。

void QTextDocumentWriter::setFormat(const QByteArray &format)

设置将文档写入指定的format 时使用的格式。format 是一个不区分大小写的文本字符串。例如:

        QTextDocumentWriter writer;
        writer.setFormat("odf"); // same as writer.setFormat("ODF");

您可以调用supportedDocumentFormats() 获取QTextDocumentWriter 支持的所有格式列表。

另请参阅 format()。

[static] QList<QByteArray> QTextDocumentWriter::supportedDocumentFormats()

返回QTextDocumentWriter 支持的文档格式列表。

默认情况下,Qt 可以输出以下格式:

格式描述
纯文本纯文本
HTML超文本标记语言
MarkdownMarkdown(CommonMark 或 GitHub 方言)
ODF开放文档格式

另请参阅 setFormat()。

bool QTextDocumentWriter::write(const QTextDocument *document)

将给定的document 写入指定的设备或文件,若成功则返回true ;否则返回false 。

bool QTextDocumentWriter::write(const QTextDocumentFragment &fragment)

将由fragment 指定的文档片段写入指定的设备或文件,若成功则返回true ;否则返回false 。

© 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.