QWebEngineDownloadRequest 类

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

头文件 #include <QWebEngineDownloadRequest>
CMakefind_package(Qt6 REQUIRED COMPONENTS WebEngineCore)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)
qmakeQT += webenginecore
实例化自 WebEngineDownloadRequest
继承自 QObject

公共类型

枚举DownloadInterruptReason { NoReason, FileFailed, FileAccessDenied, FileNoSpace, FileNameTooLong, …, UserCanceled }
枚举DownloadState { DownloadRequested, DownloadInProgress, DownloadCompleted, DownloadCancelled, DownloadInterrupted }
枚举SavePageFormat { UnknownSaveFormat, SingleHtmlSaveFormat, CompleteHtmlSaveFormat, MimeHtmlSaveFormat }

属性

公共函数

QStringdownloadDirectory() const
QStringdownloadFileName() const
quint32id() const
QWebEngineDownloadRequest::DownloadInterruptReasoninterruptReason() const
QStringinterruptReasonString() const
boolisFinished() const
boolisPaused() const
boolisSavePageDownload() const
QStringmimeType() const
QWebEnginePage *page() const
qint64receivedBytes() const
QWebEngineDownloadRequest::SavePageFormatsavePageFormat() const
voidsetDownloadDirectory(const QString &directory)
voidsetDownloadFileName(const QString &fileName)
voidsetSavePageFormat(QWebEngineDownloadRequest::SavePageFormat format)
QWebEngineDownloadRequest::DownloadStatestate() const
QStringsuggestedFileName() const
qint64totalBytes() const
QUrlurl() const

公共槽

voidaccept()
voidcancel()
voidpause()
voidresume()

信号

详细描述

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

另请参阅 QWebEngineProfileQWebEngineProfile::downloadRequestedQWebEnginePage::download,以及 QWebEnginePage::save

成员类型文档

枚举 QWebEngineDownloadRequest::DownloadInterruptReason

描述下载中断的原因

常量描述
QWebEngineDownloadRequest::NoReason0未知原因或未中断。
QWebEngineDownloadRequest::FileFailed1一般文件操作失败。
QWebEngineDownloadRequest::FileAccessDenied2文件无法本地写入,因为访问限制。
QWebEngineDownloadRequest::FileNoSpace3目标驱动器空间不足。
QWebEngineDownloadRequest::FileNameTooLong5目录或文件名过长。
QWebEngineDownloadRequest::FileTooLarge6文件大小超出文件系统限制。
QWebEngineDownloadRequest::FileVirusInfected7文件感染了病毒。
QWebEngineDownloadRequest::FileTransientError10临时问题(例如,文件正在使用、内存不足,或一次性打开的文件太多)。
QWebEngineDownloadRequest::FileBlocked11文件因本地策略而被阻止。
QWebEngineDownloadRequest::FileSecurityCheckFailed12尝试检查下载的安全性失败,原因意外。
QWebEngineDownloadRequest::FileTooShort13打开文件时尝试从文件末尾开始寻找(作为恢复之前中断的下载的一部分)。
QWebEngineDownloadRequest::FileHashMismatch14部分文件与预期哈希值不匹配。
QWebEngineDownloadRequest::NetworkFailed20一般网络失败。
QWebEngineDownloadRequest::NetworkTimeout21网络操作超时。
QWebEngineDownloadRequest::NetworkDisconnected22网络连接已终止。
QWebEngineDownloadRequest::NetworkServerDown23服务器已关闭。
QWebEngineDownloadRequest::NetworkInvalidRequest24网络请求无效(例如,原始或重定向URL无效,不支持的方案,或被策略禁止)。
QWebEngineDownloadRequest::ServerFailed30一般服务器失败。
QWebEngineDownloadRequest::ServerBadContent33服务器没有请求的数据。
QWebEngineDownloadRequest::ServerUnauthorized34服务器未授权访问资源。
QWebEngineDownloadRequest::ServerCertProblem35服务器证书出现问题。
QWebEngineDownloadRequest::ServerForbidden36服务器禁止访问。
QWebEngineDownloadRequest::ServerUnreachable37意外的服务器响应(可能表明响应服务器不是预期的服务器)。
QWebEngineDownloadRequest::UserCanceled40用户取消了下载。

枚举 QWebEngineDownloadRequest::DownloadState

此枚举描述了下载的状态

常量描述
QWebEngineDownloadRequest::DownloadRequested0已请求下载,但尚未接受。
QWebEngineDownloadRequest::DownloadInProgress1下载正在进行。
QWebEngineDownloadRequest::DownloadCompleted2成功完成下载。
QWebEngineDownloadRequest::DownloadCancelled3已取消下载。
QWebEngineDownloadRequest::DownloadInterrupted4下载已中断(由服务器或因断开连接)。

枚举 QWebEngineDownloadRequest::SavePageFormat

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

常量描述
QWebEngineDownloadRequest::UnknownSaveFormat-1这不是下载完整网页的请求。
QWebEngineDownloadRequest::SingleHtmlSaveFormat0页面保存为单个HTML页面。资源(如图像)不保存。
QWebEngineDownloadRequest::CompleteHtmlSaveFormat1页面以完整的HTML页面保存,例如包含单个HTML页面和资源的目录。
QWebEngineDownloadRequest::MimeHtmlSaveFormat2页面以MIME HTML格式保存为完整的网页。

属性文档

[只读] isFinished : const bool

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

访问函数

boolisFinished() const

通知信号

voidisFinishedChanged()

另请参阅 状态

[只读] isPaused : const bool

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

访问函数

boolisPaused() const

通知信号

另请参阅 暂停恢复

成员函数文档

[槽函数] 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属性的获取器函数。

另请参阅interruptReasonString

QString QWebEngineDownloadRequest::interruptReasonString() const

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

注意:interruptReasonString属性的获取函数。

另请参阅interruptReason

[信号] void QWebEngineDownloadRequest::isPausedChanged()

每当isPaused改变时,都会发射此信号。

注意:isPaused属性的通知信号。

另请参阅pause()和isPaused

bool QWebEngineDownloadRequest::isSavePageDownload() const

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

注意:isSavePageDownload属性的获取函数。

另请参阅savePageFormat()和setSavePageFormat

QString QWebEngineDownloadRequest::mimeType() const

返回下载的MIME类型。

注意:mimeType属性的获取函数。

QWebEnginePage *QWebEngineDownloadRequest::page() const

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

[槽] void QWebEngineDownloadRequest::pause()

暂停下载。

如果状态不是DownloadInProgress,则没有任何效果。不会改变状态。

另请参阅resume()和isPaused

qint64 QWebEngineDownloadRequest::receivedBytes() const

返回迄今为止已下载的字节数。

-1表示大小未知。

注意:receivedBytes属性的获取函数。

[槽] void QWebEngineDownloadRequest::resume()

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

如果状态不是DownloadInProgressDownloadInterrupted,则没有任何效果。不会改变状态。

另请参阅pause()、isPausedstate

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公司在芬兰以及/或其他国家/地区的商标。所有其他商标均为各自所有者的财产。