WebEngineDownloadRequest QML 类型

提供关于下载的信息。 更多...

导入语句import QtWebEngine
实例化 QWebEngineDownloadRequest

属性

方法

详细描述

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

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

注意:一些属性,如文件将要保存的路径(path),只能在调用accept()之前修改。

对象生命周期

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

网页下载

除了正常的文件下载,仅包括从网络获取一些原始字节并将其写入磁盘之外,Qt WebEngine还支持保存完整的网页,这涉及解析网页的HTML、下载任何依赖资源,并将所有内容打包到一个特殊文件格式(savePageFormat)中。要检查下载的是文件还是网页,请使用isSavePageDownload

另请参阅WebEngineProfileWebEngineProfile::downloadRequestedWebEngineProfile::downloadFinished

属性文档

downloadDirectory : string

保存下载数据的目标路径的全路径,不包含文件名。

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

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


downloadFileName : string

保存下载数据的文件名。

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

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


id : int [只读]

保存下载项的ID。


interruptReason : enumeration [只读]

返回下载中断的原因

常量描述
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 [只读]

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

另请参阅interruptReason.


isFinished : bool [只读]

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


isPaused : bool [只读]

该下载是否已暂停。

另请参阅pauseresume.


isSavePageDownload : bool [只读]

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

另请参阅savePageFormat.


mimeType : string [只读]

包含下载的MIME类型。


receivedBytes : int [只读]

包含至今下载的字节数量。


savePageFormat : enumeration

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

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

状态 : 枚举 [只读]

描述下载的状态

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

建议的文件名 : 字符串 [只读]

返回建议的文件名。


totalBytes : 整数 [只读]

包含要下载的总数据量(字节)。

-1 表示总大小未知。


url : URL [只读]

返回下载的原始URL。


view : WebEngineView [只读]

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

另请参阅WebEngineView


方法文档

void accept()

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

如果项目处于 DownloadRequested 状态,则它将进入 DownloadInProgress 状态并开始下载。如果项目处于任何其他状态,则不会发生任何操作。

另请参阅状态


void cancel()

取消下载。

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

如果项目处于 DownloadCompleted 状态,则不会发生任何操作。如果项目处于任何其他状态,则它将进入 DownloadCancelled 状态,而不产生其他影响。

另请参阅状态


void pause()

暂停下载。

如果没有处于 DownloadInProgress 状态,则没有效果。不会改变状态。

另请参阅恢复isPaused


void resume()

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

如果没有处于 DownloadInProgressDownloadInterrupted 状态,则没有效果。不会改变状态。

另请参阅暂停isPaused


© 2024 Qt公司有限公司。本文档中包含的文档贡献的版权均属于各自所有者。提供的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款许可的。Qt及其相关商标是芬兰以及全球其他国家的Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。