class QWebEngineDownloadRequest#

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

Inheritance diagram of 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#
访问函数
property downloadFileNameᅟ: str#
访问函数
属性 id: int#
访问函数
属性 interruptReason: QWebEngineDownloadRequest.DownloadInterruptReason#
访问函数
属性 interruptReasonString: str#
访问函数
属性 isFinished: bool#

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

另请参阅

state()

访问函数
属性 isPaused: bool#

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

另请参阅

pause() resume()

访问函数
属性 isSavePageDownload: bool#
访问函数
属性 mimeType: str#
访问函数
属性 receivedBytes: int#
访问函数
属性 savePageFormat:QWebEngineDownloadRequest.SavePageFormat#
访问函数
属性 state:QWebEngineDownloadRequest.DownloadState#
访问函数
属性 suggestedFileName:str#
访问函数
属性 totalBytes:int#
访问函数
属性 url:QUrl#
访问函数
accept()#

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

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

另请参阅

isFinished stateChanged

cancel()#

取消当前下载。

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

如果项目处于DownloadCompleted状态,则不会发生任何事。如果项目处于任何其他状态,则它将过渡到DownloadCancelled状态而不会产生其他效果。

另请参阅

isFinished stateChanged

downloadDirectory()#
返回类型:

str

返回下载目录路径。

另请参阅

setDownloadDirectory()

属性downloadDirectory的获取器。

downloadDirectoryChanged()#

属性downloadDirectory的通知信号。

downloadFileName()#
返回类型:

str

返回将文件下载到其中的文件名。

另请参阅

setDownloadFileName()

属性downloadFileName的获取器。

downloadFileNameChanged()#

属性downloadFileName的通知信号。

id()#
返回类型:

int

返回下载项的ID。

属性id的获取器。

interruptReason()#
返回类型:

DownloadInterruptReason

返回下载中断的原因。

属性interruptReason的获取器。

interruptReasonChanged()#

属性interruptReason的通知信号。

interruptReasonString()#
返回类型:

str

返回中断下载原因的易读描述。

另请参阅

interruptReason()

属性 interruptReasonString 的获取器。

isFinished()#
返回类型:

bool

属性 isFinished 的获取器。

isFinishedChanged()#

isFinished 属性的通知信号。

isPaused()#
返回类型:

bool

属性 isPaused 的获取器。

isPausedChanged()#

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

另请参阅

pause()isPaused

isPaused 属性的通知信号。

isSavePageDownload()#
返回类型:

bool

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

属性 isSavePageDownload 的获取器。

mimeType()#
返回类型:

str

返回下载的 MIME 类型。

属性 mimeType 的获取器。

page()#
返回类型:

QWebEnginePage

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

pause()#

暂停下载。

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

另请参阅

resume() isPaused()

receivedBytes()#
返回类型:

int

返回到目前为止已下载的数据字节数。

-1 表示大小未知。

属性 receivedBytesᅟ 的获取器。

receivedBytesChanged()#

属性 receivedBytesᅟ 的属性变化通知信号。

resume()#

如果下载被暂停或中断,则继续当前下载。

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

另请参阅

pause() isPaused() state()

savePageFormat()#
返回类型:

SavePageFormat

如果这是一个针对网页的下载请求,则返回网页将被保存的格式。

属性 savePageFormatᅟ 的获取器。

savePageFormatChanged()#

属性 savePageFormat 的通知信号。

setDownloadDirectory(directory)#
参数:

directory – str

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

下载目录路径必须在响应 downloadRequested() 信号之前设置,以接收下载请求。在此之后,此函数对下载项目状态没有任何影响。

另请参阅

downloadDirectory()

downloadDirectory 属性的设置器。

setDownloadFileName(fileName)#
参数:

fileName – str

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

必须在响应 downloadRequested() 信号(在下载请求接受之前)设置下载文件名。在此之后,此函数对下载项目状态没有任何影响。

另请参阅

downloadFileName()

downloadFileName 属性的设置器。

setSavePageFormat(format)#
参数:

formatSavePageFormat

如果这是一个网页下载请求,设置网页保存的格式。

savePageFormat 属性的设置器。

state()#
返回类型:

DownloadState

返回下载项的当前状态。

另请参阅

DownloadState

属性state的获取器。

stateChanged(state)#
参数:

stateDownloadState

当下载的state发生变化时发出此信号。

另请参阅

state() DownloadState

属性state的通知信号。

suggestedFileName()#
返回类型:

str

返回建议的文件名。

属性suggestedFileName的获取器。

totalBytes()#
返回类型:

int

返回要下载的数据总字节数。

-1 表示大小未知。

属性totalBytes的获取器。

totalBytesChanged()#

属性totalBytes的通知信号。

url()#
返回类型:

QUrl

返回下载的原始URL。

属性url的获取器。