class QTextDocumentWriter#

QTextDocumentWriter 类提供了一个格式独立的接口,用于将QTextDocument 写入文件或其他设备。《更多》…

新加于版本 4.5。

摘要#

方法#

静态功能#

备注

本文档可能包含自动从C++翻译到Python的代码片段。我们总是欢迎对代码片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单的方式来通知我们。

详细说明#

要编写文档,请创建一个带有文件名或设备对象的< code class="xref py py-class docutils literal notranslate" > QTextDocumentWriter < / code > 对象,并指定要写入的文档格式。您可以使用 < a class="reference internal" href="#PySide6.QtGui.QTextDocumentWriter.setFormat" title="PySide6.QtGui.QTextDocumentWriter.setFormat" > < code class="xref py py-meth docutils literal notranslate" > setFormat( ) < / code> 在以后设置格式。

调用< code class="xref py py-meth docutils literal notranslate" > write( ) < / code > 将文档写入设备。如果文档成功写入,则此函数返回 < code class="docutils literal notranslate" > true < / code> 。然而,如果在写入文档时发生错误,它将返回错误。

调用< code class="xref py py-meth docutils literal notranslate" > supportedDocumentFormats( ) < / code > 获取< code class="xref py py-class docutils literal notranslate" > QTextDocumentWriter < / code>可以写入的格式的列表。

由于支持的输出格式的能力差异很大,因此编写器只需为每种格式输出适当的子集对象。这通常包括文档中包含的格式化文本和图像。

__init__ < / span> < span class="sig-paren" > < / span > < a class="headerlink" href="#PySide6.QtGui.QTextDocumentWriter.__init__" title="链接到这个定义" > # < / a>

构建一个空的< code class="xref py py-class docutils literal notranslate" > QTextDocumentWriter < / code > 对象。在写入之前,必须调用< code class="xref py py-meth docutils literal notranslate" > setFormat( ) < / code> 以设置文档格式,然后调用< code class="xref py py-meth docutils literal notranslate" > setDevice( ) < / code> 或< code class="xref py py-meth docutils literal notranslate" > setFileName( ) < / code> 。

__init__ < / span> < span class="sig-paren" > < em class="sig-param" > < span class="n" > < span class="pre" > device < / span> < / span> < em class="sig-param" > < span class="n" > < span class="pre" > format < / span> < / span> < span class="sig-paren" > < / span > < / p>
参数 < / span > < / p>
  • device - QIODevice < / code>

  • format - QByteArray < / code>

构建一个< code class="xref py py-class docutils literal notranslate" > QTextDocumentWriter < / code>对象用于在指定的< code class="docutils literal notranslate" > device < / code>中以指定格式< code class="docutils literal notranslate" > format < / code>写入。

__init__(fileName[, format=QByteArray()])
参数 < / span > < / p>
  • fileName – 字符串

  • format - QByteArray < / code>

构造一个QTextDocumentWriter对象,该对象将按照由format指定的文档格式写入名为fileName的文件。如果未提供format,则QTextDocumentWriter会通过检查fileName的扩展名来检测文档格式。

device()#
返回类型:

QIODevice

返回当前分配的设备,如果没有分配设备则返回None

另请参阅:

setDevice()

fileName()#
返回类型:

字符串

如果当前分配的设备是QFile,或者如果调用了setFileName(),此函数将返回要写入的文件名。在其他所有情况下,它返回空字符串。

另请参阅:

setFileName() setDevice()

format()#
返回类型:

QByteArray

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

另请参阅:

setFormat()

setDevice(device)#
参数 < / span > < / p>

device - QIODevice < / code>

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

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

备注

对于某些设备,这可能不起作用,例如QProcess、QTcpSocket和QUdpSocket,在这些情况下,在设备可以打开之前需要进行一些配置。

另请参阅:

device() setFileName()

setFileName(fileName)#
参数 < / span > < / p>

fileName – 字符串

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

另请参阅:

fileName() setDevice()

setFormat(format)#
参数 < / span > < / p>

format - QByteArray < / code>

警告

本节包含自动从 C++ 翻译到 Python 的代码片段,可能包含错误。

设置写文档所用的格式为指定的 formatformat 是不区分大小写的文本字符串。例如

writer = QTextDocumentWriter()
writer.setFormat("odf") # same as writer.setFormat("ODF")

您可以通过调用 supportedDocumentFormats() 获取 QTextDocumentWriter 支持的完整格式列表。

另请参阅:

format()

static supportedDocumentFormats()#
返回类型:

一系列 QByteArray

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

默认情况下,Qt 可以写以下格式

格式

描述

plaintext

纯文本

HTML

超文本标记语言

markdown

Markdown(CommonMark 或 GitHub 语法)

ODF

开放文档格式

另请参阅:

setFormat()

write(document)#
参数 < / span > < / p>

documentQTextDocument

返回类型:

bool

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

write(fragment)
参数 < / span > < / p>

fragmentQTextDocumentFragment

返回类型:

bool

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