PySide6.QtWebEngineCore.QWebEngineDownloadRequest

class QWebEngineDownloadRequest

QWebEngineDownloadRequest 类提供了有关下载的信息。更多

PySide6.QtWebEngineCore.QWebEngineDownloadRequest 的继承图

概要

属性

方法

插槽

信号

注意

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

详细描述

QWebEngineDownloadRequest 模型表示一个下载的整个生命周期,从待处理的下载请求开始,到完成的下载结束。例如,它可以用于获取有关新下载的信息,监控进度,以及暂停、恢复和取消下载。

下载通常由用户在网页上的交互触发。QWebEngineProfile 负责通知应用程序新的下载请求,它通过发出 downloadRequested 信号以及一个新创建的 QWebEngineDownloadRequest 来实现这一点。应用程序可以检查此项目并决定是否接受它。信号处理程序必须显式调用项目上的 accept(),以便 Qt WebEngine 实际开始下载并将数据写入磁盘。如果没有信号处理程序调用 accept(),则下载请求将自动被拒绝,并且不会将任何内容写入磁盘。

注意

一些属性,例如设置文件保存的路径和文件名(参见 downloadDirectory()downloadFileName()),只能在调用 accept() 之前更改。

对象生命周期

所有项目在发出downloadRequested信号期间保证有效。如果没有任何信号处理程序调用accept(),则项目将在信号发出后立即删除。这意味着应用程序不得保留对被拒绝下载项目的引用。这也意味着应用程序不应使用与此信号的队列连接。

如果accept() 信号处理程序调用,那么QWebEngineProfile将拥有该项目的所有权。然而,应用程序在任何时候删除该项目都是安全的,除了在处理downloadRequested信号期间。由于QWebEngineProfile是一个长期存在的对象,实际上建议应用程序删除任何不再感兴趣的项目。

注意

自5.12.2版本起,删除项目也会自动取消下载,但为了可移植性,建议在删除前手动取消。

网页下载

除了普通的文件下载,即简单地从网络检索一些原始字节并将其写入磁盘外,Qt WebEngine 还支持保存完整的网页,这涉及解析页面的 HTML、下载任何依赖的资源,并可能将所有内容打包成特殊文件格式(savePageFormat)。要检查下载是文件还是网页,请使用 isSavePageDownload

class DownloadState

此枚举描述了下载的状态:

常量

描述

QWebEngineDownloadRequest.DownloadRequested

下载已被请求,但尚未被接受。

QWebEngineDownloadRequest.DownloadInProgress

下载正在进行中。

QWebEngineDownloadRequest.DownloadCompleted

下载成功完成。

QWebEngineDownloadRequest.DownloadCancelled

下载已被取消。

QWebEngineDownloadRequest.DownloadInterrupted

下载已被中断(由服务器或由于连接丢失)。

class SavePageFormat

此枚举描述了用于保存网页的格式。

常量

描述

QWebEngineDownloadRequest.UnknownSaveFormat

这不是一个下载完整网页的请求。

QWebEngineDownloadRequest.SingleHtmlSaveFormat

页面保存为单个HTML页面。资源如图片不会被保存。

QWebEngineDownloadRequest.CompleteHtmlSaveFormat

页面保存为完整的HTML页面,例如包含单个HTML页面和资源的目录。

QWebEngineDownloadRequest.MimeHtmlSaveFormat

页面以MIME HTML格式保存为完整的网页。

class DownloadInterruptReason

描述下载中断的原因:

常量

描述

QWebEngineDownloadRequest.NoReason

未知原因或未中断。

QWebEngineDownloadRequest.FileFailed

一般文件操作失败。

QWebEngineDownloadRequest.FileAccessDenied

由于访问限制,文件无法在本地写入。

QWebEngineDownloadRequest.FileNoSpace

目标驱动器上的空间不足。

QWebEngineDownloadRequest.FileNameTooLong

目录或文件名过长。

QWebEngineDownloadRequest.FileTooLarge

文件大小超过了文件系统的限制。

QWebEngineDownloadRequest.FileVirusInfected

文件感染了病毒。

QWebEngineDownloadRequest.FileTransientError

临时问题(例如文件正在使用中,内存不足,或同时打开的文件过多)。

QWebEngineDownloadRequest.FileBlocked

文件因本地策略被阻止。

QWebEngineDownloadRequest.FileSecurityCheckFailed

由于意外原因,尝试检查下载的安全性失败。

QWebEngineDownloadRequest.FileTooShort

尝试在打开文件时(作为恢复先前中断下载的一部分)查找超过文件末尾的位置。

QWebEngineDownloadRequest.FileHashMismatch

部分文件与预期的哈希值不匹配。

QWebEngineDownloadRequest.NetworkFailed

一般网络故障。

QWebEngineDownloadRequest.NetworkTimeout

网络操作已超时。

QWebEngineDownloadRequest.NetworkDisconnected

网络连接已终止。

QWebEngineDownloadRequest.NetworkServerDown

服务器已关闭。

QWebEngineDownloadRequest.NetworkInvalidRequest

网络请求无效(例如,原始或重定向的URL无效,具有不受支持的方案,或被策略禁止)。

QWebEngineDownloadRequest.ServerFailed

服务器一般性故障。

QWebEngineDownloadRequest.ServerBadContent

服务器没有请求的数据。

QWebEngineDownloadRequest.ServerUnauthorized

服务器未授权访问该资源。

QWebEngineDownloadRequest.ServerCertProblem

服务器证书出现问题。

QWebEngineDownloadRequest.ServerForbidden

服务器禁止访问。

QWebEngineDownloadRequest.ServerUnreachable

意外的服务器响应(可能表示响应的服务器可能不是预期的服务器)。

QWebEngineDownloadRequest.UserCanceled

用户取消了下载。

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property downloadDirectoryᅟ: str
Access functions:
property downloadFileNameᅟ: str
Access functions:
property idᅟ: int
Access functions:
property interruptReasonᅟ: QWebEngineDownloadRequest.DownloadInterruptReason
Access functions:
property interruptReasonStringᅟ: str
Access functions:
property isFinishedᅟ: bool

此属性表示此下载是否已完成(完成、取消或不可恢复的中断状态)。

另请参阅

state()

Access functions:
property isPausedᅟ: bool

此属性表示此下载是否已暂停。

另请参阅

pause() resume()

Access functions:
property isSavePageDownloadᅟ: bool
Access functions:
property mimeTypeᅟ: str
Access functions:
property receivedBytesᅟ: int
Access functions:
property savePageFormatᅟ: QWebEngineDownloadRequest.SavePageFormat
Access functions:
property stateᅟ: QWebEngineDownloadRequest.DownloadState
Access functions:
property suggestedFileNameᅟ: str
Access functions:
property totalBytesᅟ: int
Access functions:
property urlᅟ: QUrl
Access functions:
accept()

接受当前的下载请求,这将开始下载。

如果项目处于DownloadRequested状态,那么它将过渡到DownloadInProgress状态并开始下载。如果项目处于任何其他状态,则不会发生任何事情。

另请参阅

isFinished stateChanged()

cancel()

取消当前下载。

如果项目处于DownloadInProgress状态,那么它将过渡到DownloadCancelled状态,下载将停止,并且部分下载的文件将从磁盘中删除。

如果项目处于DownloadCompleted状态,则不会发生任何变化。如果项目处于任何其他状态,则它将过渡到DownloadCancelled状态,且不会产生进一步的影响。

另请参阅

isFinished stateChanged()

downloadDirectory()
Return type:

字符串

返回下载目录路径。

另请参阅

setDownloadDirectory()

属性 downloadDirectoryᅟ 的获取器。

downloadDirectoryChanged()

属性 downloadDirectoryᅟ 的通知信号。

downloadFileName()
Return type:

字符串

返回要下载文件的文件名。

另请参阅

setDownloadFileName()

属性 downloadFileNameᅟ 的获取器。

downloadFileNameChanged()

属性 downloadFileNameᅟ 的通知信号。

id()
Return type:

整数

返回下载项的ID。

属性 idᅟ 的获取器。

interruptReason()
Return type:

DownloadInterruptReason

返回下载被中断的原因。

属性 interruptReasonᅟ 的获取器。

interruptReasonChanged()

属性 interruptReasonᅟ 的通知信号。

interruptReasonString()
Return type:

字符串

返回一个可读的描述,说明中断下载的原因。

另请参阅

interruptReason()

属性 interruptReasonStringᅟ 的获取器。

isFinished()
Return type:

布尔

属性 isFinishedᅟ 的获取器。

isFinishedChanged()

属性 isFinishedᅟ 的通知信号。

isPaused()
Return type:

布尔

属性 isPausedᅟ 的获取器。

isPausedChanged()

每当isPaused发生变化时,都会发出此信号。

另请参阅

pause() isPaused

属性 isPausedᅟ 的通知信号。

isSavePageDownload()
Return type:

布尔

如果这是一个用于保存网页的下载请求,则返回 true

属性 isSavePageDownloadᅟ 的获取器。

mimeType()
Return type:

字符串

返回下载的MIME类型。

获取属性 mimeTypeᅟ 的Getter。

page()
Return type:

QWebEnginePage

返回下载请求所在的页面。如果下载不是由页面内容触发的,则返回nullptr

pause()

暂停下载。

如果状态不是DownloadInProgress,则无效。不会改变状态。

另请参阅

resume() isPaused()

receivedBytes()
Return type:

整数

返回到目前为止已下载的数据量(以字节为单位)。

-1 表示大小未知。

属性 receivedBytesᅟ 的获取器。

receivedBytesChanged()

属性 receivedBytesᅟ 的通知信号。

resume()

如果当前下载被暂停或中断,则恢复下载。

如果状态不是DownloadInProgressDownloadInterrupted,则无效。不会改变状态。

另请参阅

pause() isPaused() state()

savePageFormat()
Return type:

SavePageFormat

返回如果这是网页的下载请求,网页将保存的格式。

属性 savePageFormatᅟ 的获取器。

savePageFormatChanged()

属性 savePageFormatᅟ 的通知信号。

setDownloadDirectory(directory)
Parameters:

目录 – str

directory设置为下载文件的目录路径。

下载目录路径只能在下载被接受之前响应downloadRequested()信号时设置。过了这个点,此函数对下载项的状态没有影响。

另请参阅

downloadDirectory()

属性 downloadDirectoryᅟ 的设置器。

setDownloadFileName(fileName)
Parameters:

fileName – str

fileName设置为下载文件的文件名。

下载文件名只能在下载被接受之前响应downloadRequested()信号时设置。过了这个点,此函数对下载项的状态没有影响。

另请参阅

downloadFileName()

属性 downloadFileNameᅟ 的设置器。

setSavePageFormat(format)
Parameters:

格式SavePageFormat

设置网页保存的format,如果这是网页的下载请求。

属性 savePageFormatᅟ 的设置器。

state()
Return type:

DownloadState

返回下载项的当前状态。

另请参阅

DownloadState

属性 stateᅟ 的获取器。

stateChanged(state)
Parameters:

状态DownloadState

每当下载的state状态发生变化时,都会发出此信号。

另请参阅

state() DownloadState

属性 stateᅟ 的通知信号。

suggestedFileName()
Return type:

字符串

返回建议的文件名。

属性 suggestedFileNameᅟ 的获取器。

totalBytes()
Return type:

整数

返回要下载的数据总量,单位为字节。

-1 表示大小未知。

属性 totalBytesᅟ 的获取器。

totalBytesChanged()

属性 totalBytesᅟ 的通知信号。

url()
Return type:

QUrl

返回下载的原始URL。

属性 urlᅟ 的获取器。