WebEngineDownloadRequest QML Type

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

Import Statement: import QtWebEngine
In C++: QWebEngineDownloadRequest

属性

方法

详细说明

WebEngineDownloadRequest 对下载的整个生命周期进行建模,从待处理的下载请求开始,到完成下载为止。例如,它可用于获取有关新下载的信息、监控下载进度以及暂停、恢复和取消下载。

下载通常由用户在网页上的交互触发。WebEngineProfile 有责任将新的下载请求通知应用程序,它的做法是发出downloadRequested 信号和新创建的 WebEngineDownloadRequest。然后,应用程序可以检查该项目并决定是否接受。信号处理程序必须在项目上明确调用accept() 才能使Qt WebEngine 真正开始下载并将数据写入磁盘。如果没有信号处理程序调用accept() ,下载请求将被自动拒绝,任何数据都不会写入磁盘。

注意: 某些属性(如保存文件的path )只能在调用accept() 之前更改。

对象生命周期

downloadRequested 信号发出期间,所有项目都保证有效。如果任何信号处理器都没有调用accept() ,那么项目将在信号发出后立即被删除。这意味着应用程序不得保留被拒绝的下载项目的引用。

网页下载

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

另请参阅 WebEngineProfile,WebEngineProfile::downloadRequested, 和WebEngineProfile::downloadFinished

属性文档

downloadDirectory : string

保存下载数据的完整目标路径(不含文件名)。

下载目录只能在接受下载之前在downloadRequested 处理程序中设置。

另请参阅 WebEngineProfile::downloadRequested() 和accept()。


downloadFileName : string

保存下载数据的文件名。

下载文件名只能在接受下载之前在downloadRequested 处理程序中设置。

另请参阅 WebEngineProfile::downloadRequested() 和accept()。


id : int [read-only]

保存下载项目的 ID。


interruptReason : enumeration [read-only]

返回下载中断的原因:

常量说明
WebEngineDownloadRequest.NoReason原因不明或未中断。
WebEngineDownloadRequest.FileFailed一般文件操作失败。
WebEngineDownloadRequest.FileAccessDenied由于访问限制,无法在本地写入文件。
WebEngineDownloadRequest.FileNoSpace目标驱动器空间不足。
WebEngineDownloadRequest.FileNameTooLong目录或文件名太长。
WebEngineDownloadRequest.FileTooLarge文件大小超过文件系统限制。
WebEngineDownloadRequest.FileVirusInfected文件感染了病毒。
WebEngineDownloadRequest.FileTransientError临时问题(例如,文件正在使用中、内存不足或同时打开的文件过多)。
WebEngineDownloadRequest.FileBlocked文件因本地策略而被阻止。
WebEngineDownloadRequest.FileSecurityCheckFailed由于意外原因,检查下载安全性的尝试失败。
WebEngineDownloadRequest.FileTooShort在打开文件时(作为恢复先前中断下载的一部分),试图寻找文件的末尾。
WebEngineDownloadRequest.FileHashMismatch部分文件与预期哈希值不匹配。
WebEngineDownloadRequest.NetworkFailed一般网络故障。
WebEngineDownloadRequest.NetworkTimeout网络操作超时。
WebEngineDownloadRequest.NetworkDisconnected网络连接已终止。
WebEngineDownloadRequest.NetworkServerDown服务器宕机。
WebEngineDownloadRequest.NetworkInvalidRequest网络请求无效(例如,原始或重定向 URL 无效、方案不支持或策略不允许)。
WebEngineDownloadRequest.ServerFailed一般服务器故障。
WebEngineDownloadRequest.ServerBadContent服务器没有请求的数据。
WebEngineDownloadRequest.ServerUnauthorized服务器未授权访问资源。
WebEngineDownloadRequest.ServerCertProblem服务器证书出现问题。
WebEngineDownloadRequest.ServerForbidden服务器禁止访问。
WebEngineDownloadRequest.ServerUnreachable服务器响应出乎意料(可能表明响应的服务器可能不是预定的服务器)。
WebEngineDownloadRequest.UserCanceled用户取消下载。

另请参阅 interruptReasonString


interruptReasonString : string [read-only]

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

另请参阅 interruptReason


isFinished : bool [read-only]

下载是否已完成(已完成、已取消或处于不可恢复的中断状态)。


isPaused : bool [read-only]

下载是否暂停。

另请参阅 pauseresume


isSavePageDownload : bool [read-only]

这是保存网页还是文件的下载请求。

另请参阅 savePageFormat


mimeType : string [read-only]

表示下载的 MIME 类型。


receivedBytes : int [read-only]

以字节为单位保存已下载的数据量。


savePageFormat : enumeration

描述用于保存网页的格式。

常量说明
WebEngineDownloadRequest.UnknownSaveFormat这不是下载完整网页的请求。
WebEngineDownloadRequest.SingleHtmlSaveFormat网页保存为单个 HTML 页面。不保存图像等资源。
WebEngineDownloadRequest.CompleteHtmlSaveFormat页面保存为完整的 HTML 页面,例如包含单个 HTML 页面和资源的目录。
WebEngineDownloadRequest.MimeHtmlSaveFormat页面以 MIME HTML 格式保存为完整的网页。

state : enumeration [read-only]

描述下载状态:

常量说明
WebEngineDownloadRequest.DownloadRequested已请求下载,但尚未被接受。
WebEngineDownloadRequest.DownloadInProgress下载正在进行。
WebEngineDownloadRequest.DownloadCompleted下载已成功完成。
WebEngineDownloadRequest.DownloadCancelled下载被用户取消。
WebEngineDownloadRequest.DownloadInterrupted下载已中断(服务器中断或连接中断)。

suggestedFileName : string [read-only]

返回建议的文件名。


totalBytes : int [read-only]

表示要下载的数据总量(以字节为单位)。

-1 表示总大小未知。


url : url [read-only]

返回下载的源 URL。


view : WebEngineView [read-only]

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

另请参阅 WebEngineView


方法文档

void accept()

接受下载请求,开始下载。

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

另请参阅 state


void cancel()

取消下载。

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

如果项目处于DownloadCompleted 状态,则什么也不会发生。如果项目处于任何其他状态,则会过渡到DownloadCancelled 状态,不会有任何影响。

另请参阅 state


void pause()

暂停下载。

如果状态不是DownloadInProgress ,则不起作用。不改变状态。

另请参阅 resumeisPaused


void resume()

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

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

另请参阅 pauseisPaused


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