En esta página

QWebEngineDownloadRequest Class

La clase QWebEngineDownloadRequest proporciona información sobre una descarga. Más...

Cabecera: #include <QWebEngineDownloadRequest>
CMake: find_package(Qt6 REQUIRED COMPONENTS WebEngineCore)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)
qmake: QT += webenginecore
En QML: WebEngineDownloadRequest
Hereda: QObject

Tipos públicos

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

Propiedades

Funciones públicas

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

Ranuras públicas

void accept()
void cancel()
void pause()
void resume()

Señales

void downloadDirectoryChanged()
void downloadFileNameChanged()
void interruptReasonChanged()
void isFinishedChanged()
void isPausedChanged()
void receivedBytesChanged()
void savePageFormatChanged()
void stateChanged(QWebEngineDownloadRequest::DownloadState state)
void totalBytesChanged()

Descripción Detallada

QWebEngineDownloadRequest modela una descarga a lo largo de su ciclo de vida, comenzando con una solicitud de descarga pendiente y terminando con una descarga completada. Puede usarse, por ejemplo, para obtener información sobre nuevas descargas, monitorizar el progreso y pausar, reanudar y cancelar descargas.

Las descargas suelen activarse por la interacción del usuario en una página web. Es responsabilidad de QWebEngineProfile notificar a la aplicación de nuevas solicitudes de descarga, lo que hace emitiendo la señal downloadRequested junto con una QWebEngineDownloadRequest recién creada. La aplicación puede entonces examinar este elemento y decidir si lo acepta o no. Una vez tomada la decisión, la aplicación debe llamar explícitamente a accept() o cancel() sobre el elemento para que Qt WebEngine inicie realmente la descarga o rechace la solicitud.

Nota: Algunas propiedades, como la configuración de la ruta y el nombre del archivo donde se guardará (véase downloadDirectory() y downloadFileName()), sólo pueden modificarse antes de llamar a accept().

Ciclo de vida de los objetos

En todos y cada uno de los casos, QWebEngineProfile asume la propiedad del objeto. Sin embargo, la aplicación puede borrar el elemento en cualquier momento, excepto durante la gestión de la señal downloadRequested. Dado que QWebEngineProfile es un objeto longevo, se recomienda que la aplicación elimine los elementos que ya no le interesen.

Nota: Borrar un ítem también cancelará automáticamente una descarga desde 5.12.2, pero se recomienda cancelar manualmente antes de borrar por razones de portabilidad.

Descargas de páginas web

Además de las descargas normales de archivos, que consisten simplemente en recuperar algunos bytes en bruto de la red y escribirlos en el disco, Qt WebEngine también permite guardar páginas web completas, lo que implica analizar el HTML de la página, descargar cualquier recurso dependiente y, potencialmente, empaquetarlo todo en un formato de archivo especial (savePageFormat). Para comprobar si una descarga es de un archivo o de una página web, utiliza isSavePageDownload.

Las peticiones de guardado de páginas web se aceptan automáticamente y se inician desde el estado DownloadInProgress por razones de conveniencia. El primer gestor de señales directamente conectado a downloadRequested puede evitarlo llamando a cancel(), de lo contrario la operación de guardado comenzará a escribir datos en el disco.

Ver también QWebEngineProfile, QWebEngineProfile::downloadRequested, QWebEnginePage::download, y QWebEnginePage::save.

Documentación de tipos de miembros

enum QWebEngineDownloadRequest::DownloadInterruptReason

Describe el motivo por el que se ha interrumpido una descarga:

ConstanteValorDescripción
QWebEngineDownloadRequest::NoReason0Razón desconocida o no interrumpida.
QWebEngineDownloadRequest::FileFailed1Fallo general de la operación de archivo.
QWebEngineDownloadRequest::FileAccessDenied2El archivo no se puede escribir localmente debido a restricciones de acceso.
QWebEngineDownloadRequest::FileNoSpace3Espacio insuficiente en la unidad de destino.
QWebEngineDownloadRequest::FileNameTooLong5El nombre del directorio o del archivo es demasiado largo.
QWebEngineDownloadRequest::FileTooLarge6El tamaño del archivo supera la limitación del sistema de archivos.
QWebEngineDownloadRequest::FileVirusInfected7El archivo está infectado por un virus.
QWebEngineDownloadRequest::FileTransientError10Problema temporal (por ejemplo, el archivo está en uso, se ha quedado sin memoria o se han abierto demasiados archivos a la vez).
QWebEngineDownloadRequest::FileBlocked11El fichero ha sido bloqueado debido a una política local.
QWebEngineDownloadRequest::FileSecurityCheckFailed12Un intento de comprobar la seguridad de la descarga falló debido a razones inesperadas.
QWebEngineDownloadRequest::FileTooShort13Se intentó buscar más allá del final de un archivo al abrir un archivo (como parte de la reanudación de una descarga interrumpida previamente).
QWebEngineDownloadRequest::FileHashMismatch14El archivo parcial no coincidía con el hash esperado.
QWebEngineDownloadRequest::NetworkFailed20Fallo general de la red.
QWebEngineDownloadRequest::NetworkTimeout21Se ha agotado el tiempo de espera de la operación de red.
QWebEngineDownloadRequest::NetworkDisconnected22Se ha interrumpido la conexión de red.
QWebEngineDownloadRequest::NetworkServerDown23El servidor se ha caído.
QWebEngineDownloadRequest::NetworkInvalidRequest24La solicitud de red no era válida (por ejemplo, la URL original o redirigida no es válida, tiene un esquema no compatible o no está permitida por la política).
QWebEngineDownloadRequest::ServerFailed30Fallo general del servidor.
QWebEngineDownloadRequest::ServerBadContent33El servidor no dispone de los datos solicitados.
QWebEngineDownloadRequest::ServerUnauthorized34El servidor no autorizó el acceso al recurso.
QWebEngineDownloadRequest::ServerCertProblem35Se ha producido un problema con el certificado del servidor.
QWebEngineDownloadRequest::ServerForbidden36Acceso prohibido por el servidor.
QWebEngineDownloadRequest::ServerUnreachable37Respuesta inesperada del servidor (puede indicar que el servidor que responde puede no ser el servidor previsto).
QWebEngineDownloadRequest::UserCanceled40El usuario canceló la descarga.

enum QWebEngineDownloadRequest::DownloadState

Este enum describe el estado de la descarga:

ConstanteValorDescripción
QWebEngineDownloadRequest::DownloadRequested0Se ha solicitado la descarga, pero aún no se ha aceptado.
QWebEngineDownloadRequest::DownloadInProgress1La descarga está en curso.
QWebEngineDownloadRequest::DownloadCompleted2La descarga se ha completado correctamente.
QWebEngineDownloadRequest::DownloadCancelled3Se ha cancelado la descarga.
QWebEngineDownloadRequest::DownloadInterrupted4La descarga ha sido interrumpida (por el servidor o por pérdida de conectividad).

enum QWebEngineDownloadRequest::SavePageFormat

Este enum describe el formato que se utiliza para guardar una página web.

ConstanteValorDescripción
QWebEngineDownloadRequest::UnknownSaveFormat-1No se trata de una solicitud para descargar una página web completa.
QWebEngineDownloadRequest::SingleHtmlSaveFormat0La página se guarda como una única página HTML. Los recursos como las imágenes no se guardan.
QWebEngineDownloadRequest::CompleteHtmlSaveFormat1La página se guarda como una página HTML completa, por ejemplo, un directorio que contenga la página HTML única y los recursos.
QWebEngineDownloadRequest::MimeHtmlSaveFormat2La página se guarda como una página web completa en formato HTML MIME.

Documentación de propiedades

downloadDirectory : QString

Esta propiedad contiene la ruta del directorio de descarga.

La ruta del directorio de descarga sólo puede establecerse en respuesta a la señal QWebEngineProfile::downloadRequested() antes de que se acepte la descarga. Después de ese momento, esta propiedad no tiene ningún efecto sobre el estado del elemento de descarga.

Funciones de acceso:

QString downloadDirectory() const
void setDownloadDirectory(const QString &directory)

Señal de notificador:

void downloadDirectoryChanged()

downloadFileName : QString

Esta propiedad contiene el nombre de archivo en el que se descargará el archivo.

El nombre del archivo de descarga sólo puede establecerse en respuesta a la señal QWebEngineProfile::downloadRequested() antes de que se acepte la descarga. Después de ese momento, esta propiedad no tiene ningún efecto sobre el estado del elemento de descarga.

Funciones de acceso:

QString downloadFileName() const
void setDownloadFileName(const QString &fileName)

Señal del notificador:

void downloadFileNameChanged()

[read-only] id : const quint32

Esta propiedad contiene el ID del elemento de descarga.

Funciones de acceso:

quint32 id() const

[read-only] interruptReason : DownloadInterruptReason

Esta propiedad contiene la razón por la que se interrumpió la descarga.

Funciones de acceso:

QWebEngineDownloadRequest::DownloadInterruptReason interruptReason() const

Señal del notificador:

void interruptReasonChanged()

Véase también interruptReasonString.

[read-only] interruptReasonString : QString

Esta propiedad contiene una descripción legible por humanos del motivo por el que se interrumpe la descarga.

Funciones de acceso:

QString interruptReasonString() const

Señal del notificador:

Véase también interruptReason.

[read-only] isFinished : bool

Esta propiedad indica si la descarga ha finalizado (completada, cancelada o en estado de interrupción no reanudable).

Funciones de acceso:

bool isFinished() const

Señal del notificador:

void isFinishedChanged()

Véase también state().

[read-only] isPaused : bool

Esta propiedad indica si la descarga está en pausa.

Funciones de acceso:

bool isPaused() const

Notificador de señal:

Véase también pause() y resume().

[read-only] isSavePageDownload : const bool

Esta propiedad indica si se trata de una solicitud de descarga para guardar una página web.

Funciones de acceso:

bool isSavePageDownload() const

Véase también savePageFormat.

[read-only] mimeType : QString

Esta propiedad contiene el tipo MIME de la descarga.

Funciones de acceso:

QString mimeType() const

[read-only] receivedBytes : qint64

Esta propiedad contiene la cantidad de datos en bytes que se han descargado hasta el momento.

-1 significa que el tamaño es desconocido.

Funciones de acceso:

qint64 receivedBytes() const

Señal del notificador:

void receivedBytesChanged()

savePageFormat : SavePageFormat

Esta propiedad contiene el formato en el que se guardará la página web si se trata de una solicitud de descarga de una página web.

Funciones de acceso:

QWebEngineDownloadRequest::SavePageFormat savePageFormat() const
void setSavePageFormat(QWebEngineDownloadRequest::SavePageFormat format)

Señal del notificador:

void savePageFormatChanged()

Véase también isSavePageDownload.

[read-only] state : DownloadState

Esta propiedad contiene el estado actual del elemento de descarga.

Funciones de acceso:

QWebEngineDownloadRequest::DownloadState state() const

Señal del notificador:

void stateChanged(QWebEngineDownloadRequest::DownloadState state)

Véase también DownloadState.

[read-only] suggestedFileName : const QString

Esta propiedad contiene el nombre de archivo sugerido.

Funciones de acceso:

QString suggestedFileName() const

[read-only] totalBytes : qint64

Esta propiedad contiene la cantidad total de datos a descargar en bytes.

-1 significa que el tamaño es desconocido.

Funciones de acceso:

qint64 totalBytes() const

Señal del notificador:

void totalBytesChanged()

[read-only] url : const QUrl

Esta propiedad contiene la URL de origen de la descarga.

Funciones de acceso:

QUrl url() const

Documentación de las funciones miembro

[slot] void QWebEngineDownloadRequest::accept()

Acepta la solicitud de descarga actual, que iniciará la descarga.

Si el elemento está en el estado DownloadRequested, entonces pasará al estado DownloadInProgress y comenzará la descarga. Si el elemento se encuentra en cualquier otro estado, no ocurrirá nada.

Véase también isFinished y stateChanged().

[slot] void QWebEngineDownloadRequest::cancel()

Cancela la descarga en curso.

Si el elemento se encuentra en el estado DownloadInProgress, pasará al estado DownloadCancelled, se detendrá la descarga y se borrarán del disco los archivos parcialmente descargados.

Si el elemento se encuentra en el estado DownloadCompleted, no ocurrirá nada. Si el elemento se encuentra en cualquier otro estado, pasará al estado DownloadCancelled sin más consecuencias.

Véase también isFinished y stateChanged().

[signal] void QWebEngineDownloadRequest::isPausedChanged()

Esta señal se emite cada vez que cambia isPaused.

Nota: Señal notificadora para la propiedad isPaused.

Véase también pause() y isPaused.

QWebEnginePage *QWebEngineDownloadRequest::page() const

Devuelve la página en la que se solicitó la descarga. Si la descarga no fue provocada por el contenido de una página, se devuelve nullptr.

[slot] void QWebEngineDownloadRequest::pause()

Detiene la descarga.

No tiene efecto si el estado no es DownloadInProgress. No cambia el estado.

Véase también resume() y isPaused().

[slot] void QWebEngineDownloadRequest::resume()

Reanuda la descarga en curso si se ha pausado o interrumpido.

No tiene efecto si el estado no es DownloadInProgress o DownloadInterrupted. No cambia el estado.

Véase también pause(), isPaused() y state().

[signal] void QWebEngineDownloadRequest::stateChanged(QWebEngineDownloadRequest::DownloadState state)

Esta señal se emite cada vez que cambia la dirección state de la descarga.

Nota: Señal notificadora para la propiedad state.

Véase también state() y DownloadState.

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