QWebEngineDownloadRequest 类
QWebEngineDownloadRequest 类提供关于下载的信息。 更多信息...
头文件 | #include <QWebEngineDownloadRequest> |
CMake | find_package(Qt6 REQUIRED COMPONENTS WebEngineCore) target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
qmake | QT += webenginecore |
实例化自 | WebEngineDownloadRequest |
继承自 | QObject |
公共类型
枚举 | DownloadInterruptReason { NoReason, FileFailed, FileAccessDenied, FileNoSpace, FileNameTooLong, …, UserCanceled } |
枚举 | DownloadState { DownloadRequested, DownloadInProgress, DownloadCompleted, DownloadCancelled, DownloadInterrupted } |
枚举 | SavePageFormat { UnknownSaveFormat, SingleHtmlSaveFormat, CompleteHtmlSaveFormat, MimeHtmlSaveFormat } |
属性
- isFinished : const bool
- isPaused : const bool
公共函数
QString | downloadDirectory() const |
QString | downloadFileName() const |
quint32 | id() const |
QWebEngineDownloadRequest::DownloadInterruptReason | interruptReason() const |
QString | interruptReasonString() const |
bool | isFinished() const |
bool | isPaused() const |
bool | isSavePageDownload() const |
QString | mimeType() const |
QWebEnginePage * | page() const |
qint64 | receivedBytes() const |
QWebEngineDownloadRequest::SavePageFormat | savePageFormat() const |
void | setDownloadDirectory(const QString &directory) |
void | setDownloadFileName(const QString &fileName) |
void | setSavePageFormat(QWebEngineDownloadRequest::SavePageFormat format) |
QWebEngineDownloadRequest::DownloadState | state() const |
QString | suggestedFileName() const |
qint64 | totalBytes() const |
QUrl | url() const |
公共槽
信号
void | downloadDirectoryChanged() |
void | downloadFileNameChanged() |
void | interruptReasonChanged() |
void | isFinishedChanged() |
void | isPausedChanged() |
void | receivedBytesChanged() |
void | savePageFormatChanged() |
void | stateChanged(QWebEngineDownloadRequest::DownloadState state) |
void | totalBytesChanged() |
详细描述
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。
另请参阅 QWebEngineProfile,QWebEngineProfile::downloadRequested,QWebEnginePage::download,以及 QWebEnginePage::save。
成员类型文档
枚举 QWebEngineDownloadRequest::DownloadInterruptReason
描述下载中断的原因
常量 | 值 | 描述 |
---|---|---|
QWebEngineDownloadRequest::NoReason | 0 | 未知原因或未中断。 |
QWebEngineDownloadRequest::FileFailed | 1 | 一般文件操作失败。 |
QWebEngineDownloadRequest::FileAccessDenied | 2 | 文件无法本地写入,因为访问限制。 |
QWebEngineDownloadRequest::FileNoSpace | 3 | 目标驱动器空间不足。 |
QWebEngineDownloadRequest::FileNameTooLong | 5 | 目录或文件名过长。 |
QWebEngineDownloadRequest::FileTooLarge | 6 | 文件大小超出文件系统限制。 |
QWebEngineDownloadRequest::FileVirusInfected | 7 | 文件感染了病毒。 |
QWebEngineDownloadRequest::FileTransientError | 10 | 临时问题(例如,文件正在使用、内存不足,或一次性打开的文件太多)。 |
QWebEngineDownloadRequest::FileBlocked | 11 | 文件因本地策略而被阻止。 |
QWebEngineDownloadRequest::FileSecurityCheckFailed | 12 | 尝试检查下载的安全性失败,原因意外。 |
QWebEngineDownloadRequest::FileTooShort | 13 | 打开文件时尝试从文件末尾开始寻找(作为恢复之前中断的下载的一部分)。 |
QWebEngineDownloadRequest::FileHashMismatch | 14 | 部分文件与预期哈希值不匹配。 |
QWebEngineDownloadRequest::NetworkFailed | 20 | 一般网络失败。 |
QWebEngineDownloadRequest::NetworkTimeout | 21 | 网络操作超时。 |
QWebEngineDownloadRequest::NetworkDisconnected | 22 | 网络连接已终止。 |
QWebEngineDownloadRequest::NetworkServerDown | 23 | 服务器已关闭。 |
QWebEngineDownloadRequest::NetworkInvalidRequest | 24 | 网络请求无效(例如,原始或重定向URL无效,不支持的方案,或被策略禁止)。 |
QWebEngineDownloadRequest::ServerFailed | 30 | 一般服务器失败。 |
QWebEngineDownloadRequest::ServerBadContent | 33 | 服务器没有请求的数据。 |
QWebEngineDownloadRequest::ServerUnauthorized | 34 | 服务器未授权访问资源。 |
QWebEngineDownloadRequest::ServerCertProblem | 35 | 服务器证书出现问题。 |
QWebEngineDownloadRequest::ServerForbidden | 36 | 服务器禁止访问。 |
QWebEngineDownloadRequest::ServerUnreachable | 37 | 意外的服务器响应(可能表明响应服务器不是预期的服务器)。 |
QWebEngineDownloadRequest::UserCanceled | 40 | 用户取消了下载。 |
枚举 QWebEngineDownloadRequest::DownloadState
此枚举描述了下载的状态
常量 | 值 | 描述 |
---|---|---|
QWebEngineDownloadRequest::DownloadRequested | 0 | 已请求下载,但尚未接受。 |
QWebEngineDownloadRequest::DownloadInProgress | 1 | 下载正在进行。 |
QWebEngineDownloadRequest::DownloadCompleted | 2 | 成功完成下载。 |
QWebEngineDownloadRequest::DownloadCancelled | 3 | 已取消下载。 |
QWebEngineDownloadRequest::DownloadInterrupted | 4 | 下载已中断(由服务器或因断开连接)。 |
枚举 QWebEngineDownloadRequest::SavePageFormat
此枚举描述了保存网页所使用的格式。
常量 | 值 | 描述 |
---|---|---|
QWebEngineDownloadRequest::UnknownSaveFormat | -1 | 这不是下载完整网页的请求。 |
QWebEngineDownloadRequest::SingleHtmlSaveFormat | 0 | 页面保存为单个HTML页面。资源(如图像)不保存。 |
QWebEngineDownloadRequest::CompleteHtmlSaveFormat | 1 | 页面以完整的HTML页面保存,例如包含单个HTML页面和资源的目录。 |
QWebEngineDownloadRequest::MimeHtmlSaveFormat | 2 | 页面以MIME HTML格式保存为完整的网页。 |
属性文档
[只读]
isFinished : const bool
此属性表示此下载是否已完成(完成、取消或非可恢复中断状态)。
访问函数
bool | isFinished() const |
通知信号
void | isFinishedChanged() |
另请参阅 状态。
[只读]
isPaused : const bool
此属性表示此下载是否已暂停。
访问函数
bool | isPaused() const |
通知信号
void | isPausedChanged() |
成员函数文档
[槽函数]
void QWebEngineDownloadRequest::accept()
接受当前下载请求,这将启动下载。
如果项目处于DownloadRequested状态,则它将进入DownloadInProgress状态,下载将开始。如果不是该状态,则不会发生任何事情。
另请参阅 isFinished和状态已更改。
[槽函数]
void QWebEngineDownloadRequest::cancel()
取消当前下载。
如果项目处于DownloadInProgress状态,则它将转换到DownloadCancelled状态,下载将停止,并且部分下载的文件将从磁盘删除。
如果项目处于DownloadCompleted状态,则不会发生任何事情。如果项目处于其他任何状态,则它将转换到DownloadCancelled状态,而不会有其他影响。
另请参阅 isFinished和状态已更改。
QString QWebEngineDownloadRequest::downloadDirectory() const
返回下载目录路径。
注意:downloadDirectory属性的获取器函数。
另请参阅 setDownloadDirectory。
QString QWebEngineDownloadRequest::downloadFileName() const
返回文件名,下载文件到。
注意:downloadFileName属性的获取器函数。
另请参阅 setDownloadFileName。
quint32 QWebEngineDownloadRequest::id() const
返回下载项目的ID。
注意:id属性的获取器函数。
QWebEngineDownloadRequest::DownloadInterruptReason QWebEngineDownloadRequest::interruptReason() const
返回下载被中断的原因。
注意:interruptReason属性的获取器函数。
QString QWebEngineDownloadRequest::interruptReasonString() const
返回中断下载原因的人类可读描述。
注意:interruptReasonString属性的获取函数。
另请参阅interruptReason。
[信号]
void QWebEngineDownloadRequest::isPausedChanged()
每当isPaused改变时,都会发射此信号。
注意:isPaused属性的通知信号。
bool QWebEngineDownloadRequest::isSavePageDownload() const
如果是保存网页的下载请求,则返回true
。
注意:isSavePageDownload属性的获取函数。
另请参阅savePageFormat()和setSavePageFormat。
QString QWebEngineDownloadRequest::mimeType() const
返回下载的MIME类型。
注意:mimeType属性的获取函数。
QWebEnginePage *QWebEngineDownloadRequest::page() const
返回请求下载时所对应的页面。如果下载不是由页面中的内容触发的,则返回nullptr
。
[槽]
void QWebEngineDownloadRequest::pause()
暂停下载。
如果状态不是DownloadInProgress,则没有任何效果。不会改变状态。
qint64 QWebEngineDownloadRequest::receivedBytes() const
返回迄今为止已下载的字节数。
-1
表示大小未知。
注意:receivedBytes属性的获取函数。
[槽]
void QWebEngineDownloadRequest::resume()
如果下载已被暂停或中断,则继续当前下载。
如果状态不是DownloadInProgress或DownloadInterrupted,则没有任何效果。不会改变状态。
QWebEngineDownloadRequest::SavePageFormat QWebEngineDownloadRequest::savePageFormat() const
如果这是下载网页的请求,则返回网页保存的格式。
注意:savePageFormat属性的获取函数。
另请参阅setSavePageFormat()和isSavePageDownload。
void QWebEngineDownloadRequest::setDownloadDirectory(const QString &directory)
将directory设置为下载文件的目标目录。
只有在响应 QWebEngineProfile::downloadRequested() 信号并在接受下载之前,才能设置下载目录路径。在此之后,此函数对下载项的状态没有影响。
注意:这是 downloadDirectory 属性的设置器。
另请参阅:downloadDirectory。
void QWebEngineDownloadRequest::setDownloadFileName(const QString &fileName)
将fileName设置为下载文件的目标文件名。
只有在响应 QWebEngineProfile::downloadRequested() 信号并在接受下载之前,才能设置下载文件名。在此之后,此函数对下载项的状态没有影响。
注意:这是 downloadFileName 属性的设置器。
另请参阅:downloadFileName。
void QWebEngineDownloadRequest::setSavePageFormat(QWebEngineDownloadRequest::SavePageFormat format)
如果这是一个网页下载请求,则设置网页保存的格式format。
注意:这是 savePageFormat 属性的设置器。
另请参阅:savePageFormat() 和 isSavePageDownload。
QWebEngineDownloadRequest::DownloadState QWebEngineDownloadRequest::state() const
返回下载项当前的状态。
注意:这是属性 state 的获取器。
另请参阅:DownloadState。
[信号]
void QWebEngineDownloadRequest::stateChanged(QWebEngineDownloadRequest::DownloadState state)
每当下载的 state 发生变化时,都会发射此信号。
注意:这是属性 state 的通知信号。
另请参阅:state() 和 DownloadState。
QString QWebEngineDownloadRequest::suggestedFileName() const
返回建议的文件名。
注意:这是属性 suggestedFileName 的获取器。
qint64 QWebEngineDownloadRequest::totalBytes() const
返回要下载的数据总量,以字节为单位。
-1
表示大小未知。
注意:这是属性 totalBytes 的获取器。
QUrl QWebEngineDownloadRequest::url() const
返回下载的原生 URL。
注意:这是属性 url 的获取器。
版权所有© 2024 Qt公司有限公司。本文件中所包含的文档贡献是各自所有者的版权。本文件中所提供的文档受Free Software Foundation发布的GNU自由文档许可版本1.3的条款许可。Qt及其相关标志是Qt公司在芬兰以及/或其他国家/地区的商标。所有其他商标均为各自所有者的财产。