QWebEngineDownloadRequest Class

Die Klasse QWebEngineDownloadRequest liefert Informationen über einen Download. Mehr...

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

Öffentliche Typen

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

Eigenschaften

Öffentliche Funktionen

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

Öffentliche Slots

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

Signale

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

Detaillierte Beschreibung

QWebEngineDownloadRequest modelliert einen Download während seines gesamten Lebenszyklus, beginnend mit einer anstehenden Download-Anforderung und endend mit einem abgeschlossenen Download. Es kann zum Beispiel verwendet werden, um Informationen über neue Downloads zu erhalten, um den Fortschritt zu überwachen und um Downloads anzuhalten, fortzusetzen und abzubrechen.

Downloads werden in der Regel durch Benutzerinteraktionen auf einer Webseite ausgelöst. Es liegt in der Verantwortung von QWebEngineProfile, die Anwendung über neue Download-Anforderungen zu informieren. Dies geschieht durch das Aussenden des Signals downloadRequested zusammen mit einer neu erstellten QWebEngineDownloadRequest. Die Anwendung kann dann dieses Element prüfen und entscheiden, ob sie es akzeptiert oder nicht. Ein Signalhandler muss explizit accept() für das Element aufrufen, damit Qt WebEngine tatsächlich mit dem Herunterladen und Schreiben von Daten auf die Festplatte beginnt. Wenn kein Signalhandler accept() aufruft, wird die Download-Anforderung automatisch abgelehnt und es wird nichts auf die Festplatte geschrieben.

Hinweis: Einige Eigenschaften, wie z. B. das Festlegen des Pfads und des Dateinamens, unter dem die Datei gespeichert werden soll (siehe downloadDirectory() und downloadFileName()), können nur vor dem Aufruf von accept() geändert werden.

Lebenszyklus von Objekten

Alle Objekte sind garantiert gültig, solange das Signal downloadRequested gesendet wird. Wenn accept() nicht von einem Signalhandler aufgerufen wird, wird das Element unmittelbar nach der Signalausgabe gelöscht. Dies bedeutet, dass die Anwendung keine Verweise auf abgelehnte Download-Elemente aufbewahren darf. Es bedeutet auch, dass die Anwendung keine Warteschlangenverbindung zu diesem Signal verwenden sollte.

Wenn accept() von einem Signalhandler aufgerufen wird, übernimmt QWebEngineProfile das Element. Es ist jedoch sicher, dass die Anwendung das Element jederzeit löschen kann, außer während der Verarbeitung des Signals downloadRequested. Da es sich bei QWebEngineProfile um ein langlebiges Objekt handelt, wird empfohlen, dass die Anwendung alle Elemente löscht, an denen sie nicht mehr interessiert ist.

Hinweis: Das Löschen eines Objekts bricht seit Version 5.12.2 auch automatisch einen Download ab, aber es wird empfohlen, den Vorgang vor dem Löschen manuell abzubrechen, um die Übertragbarkeit zu gewährleisten.

Downloads von Webseiten

Zusätzlich zu den normalen Dateidownloads, bei denen einfach nur einige rohe Bytes aus dem Netzwerk abgerufen und auf die Festplatte geschrieben werden, unterstützt Qt WebEngine auch das Speichern kompletter Webseiten, wobei der HTML-Code der Seite geparst, alle abhängigen Ressourcen heruntergeladen und möglicherweise alles in ein spezielles Dateiformat (savePageFormat) verpackt wird. Um zu prüfen, ob es sich bei einem Download um eine Datei oder eine Webseite handelt, verwenden Sie isSavePageDownload.

Siehe auch QWebEngineProfile, QWebEngineProfile::downloadRequested, QWebEnginePage::download, und QWebEnginePage::save.

Dokumentation der Mitgliedstypen

enum QWebEngineDownloadRequest::DownloadInterruptReason

Beschreibt den Grund, warum ein Download unterbrochen wurde:

KonstanteWertBeschreibung
QWebEngineDownloadRequest::NoReason0Unbekannter Grund oder nicht unterbrochen.
QWebEngineDownloadRequest::FileFailed1Allgemeiner Fehler bei der Dateioperation.
QWebEngineDownloadRequest::FileAccessDenied2Die Datei kann aufgrund von Zugriffsbeschränkungen nicht lokal geschrieben werden.
QWebEngineDownloadRequest::FileNoSpace3Unzureichender Speicherplatz auf dem Ziellaufwerk.
QWebEngineDownloadRequest::FileNameTooLong5Der Verzeichnis- oder Dateiname ist zu lang.
QWebEngineDownloadRequest::FileTooLarge6Die Dateigröße überschreitet die Begrenzung des Dateisystems.
QWebEngineDownloadRequest::FileVirusInfected7Die Datei ist mit einem Virus infiziert.
QWebEngineDownloadRequest::FileTransientError10Vorübergehendes Problem (z. B. die Datei ist in Gebrauch, der Speicherplatz ist erschöpft, oder es sind zu viele Dateien gleichzeitig geöffnet).
QWebEngineDownloadRequest::FileBlocked11Die Datei wurde aufgrund einer lokalen Richtlinie blockiert.
QWebEngineDownloadRequest::FileSecurityCheckFailed12Ein Versuch, die Sicherheit des Downloads zu überprüfen, ist aus unerwarteten Gründen fehlgeschlagen.
QWebEngineDownloadRequest::FileTooShort13Beim Öffnen einer Datei wurde versucht, über das Ende der Datei hinaus zu suchen (im Rahmen der Wiederaufnahme eines zuvor unterbrochenen Downloads).
QWebEngineDownloadRequest::FileHashMismatch14Die Teildatei stimmte nicht mit dem erwarteten Hash überein.
QWebEngineDownloadRequest::NetworkFailed20Allgemeine Netzwerkstörung.
QWebEngineDownloadRequest::NetworkTimeout21Die Netzwerkoperation hat eine Zeitüberschreitung verursacht.
QWebEngineDownloadRequest::NetworkDisconnected22Die Netzwerkverbindung wurde unterbrochen.
QWebEngineDownloadRequest::NetworkServerDown23Der Server ist ausgefallen.
QWebEngineDownloadRequest::NetworkInvalidRequest24Die Netzwerkanforderung war ungültig (z. B. ist die ursprüngliche oder umgeleitete URL ungültig, hat ein nicht unterstütztes Schema oder ist durch eine Richtlinie nicht zulässig).
QWebEngineDownloadRequest::ServerFailed30Allgemeiner Serverausfall.
QWebEngineDownloadRequest::ServerBadContent33Der Server verfügt nicht über die angeforderten Daten.
QWebEngineDownloadRequest::ServerUnauthorized34Der Server hat den Zugriff auf die Ressource nicht autorisiert.
QWebEngineDownloadRequest::ServerCertProblem35Es ist ein Problem mit dem Serverzertifikat aufgetreten.
QWebEngineDownloadRequest::ServerForbidden36Der Zugriff wurde vom Server verboten.
QWebEngineDownloadRequest::ServerUnreachable37Unerwartete Serverantwort (kann darauf hinweisen, dass der antwortende Server nicht der beabsichtigte Server ist).
QWebEngineDownloadRequest::UserCanceled40Der Benutzer hat den Download abgebrochen.

enum QWebEngineDownloadRequest::DownloadState

Diese Aufzählung beschreibt den Status des Downloads:

KonstanteWertBeschreibung
QWebEngineDownloadRequest::DownloadRequested0Der Download wurde angefordert, aber noch nicht akzeptiert.
QWebEngineDownloadRequest::DownloadInProgress1Der Download ist im Gange.
QWebEngineDownloadRequest::DownloadCompleted2Der Download wurde erfolgreich abgeschlossen.
QWebEngineDownloadRequest::DownloadCancelled3Das Herunterladen wurde abgebrochen.
QWebEngineDownloadRequest::DownloadInterrupted4Das Herunterladen wurde unterbrochen (durch den Server oder aufgrund von Verbindungsabbrüchen).

enum QWebEngineDownloadRequest::SavePageFormat

Diese Aufzählung beschreibt das Format, das zum Speichern einer Webseite verwendet wird.

KonstanteWertBeschreibung
QWebEngineDownloadRequest::UnknownSaveFormat-1Dies ist keine Anfrage zum Herunterladen einer kompletten Webseite.
QWebEngineDownloadRequest::SingleHtmlSaveFormat0Die Seite wird als einzelne HTML-Seite gespeichert. Ressourcen, wie z. B. Bilder, werden nicht gespeichert.
QWebEngineDownloadRequest::CompleteHtmlSaveFormat1Die Seite wird als vollständige HTML-Seite gespeichert, z. B. ein Verzeichnis, das die einzelne HTML-Seite und die Ressourcen enthält.
QWebEngineDownloadRequest::MimeHtmlSaveFormat2Die Seite wird als komplette Webseite im MIME-HTML-Format gespeichert.

Eigenschaft Dokumentation

[read-only] isFinished : const bool

Diese Eigenschaft gibt an, ob der Download beendet ist (abgeschlossen, abgebrochen oder nicht wiederaufnehmbarer unterbrochener Zustand).

Zugriffsfunktionen:

bool isFinished() const

Benachrichtigungssignal:

void isFinishedChanged()

Siehe auch state().

[read-only] isPaused : const bool

Diese Eigenschaft gibt an, ob der Download pausiert wird.

Zugriffsfunktionen:

bool isPaused() const

Benachrichtigungssignal:

Siehe auch pause() und resume().

Dokumentation der Mitgliedsfunktionen

[slot] void QWebEngineDownloadRequest::accept()

Nimmt die aktuelle Download-Anforderung an und startet den Download.

Befindet sich das Objekt im Zustand DownloadRequested, geht es in den Zustand DownloadInProgress über und das Herunterladen beginnt. Befindet sich das Objekt in einem anderen Zustand, geschieht nichts.

Siehe auch isFinished und stateChanged().

[slot] void QWebEngineDownloadRequest::cancel()

Bricht den aktuellen Download ab.

Wenn sich das Objekt im Zustand DownloadInProgress befindet, geht es in den Zustand DownloadCancelled über, das Herunterladen wird beendet und teilweise heruntergeladene Dateien werden von der Festplatte gelöscht.

Befindet sich das Objekt im Zustand DownloadCompleted, geschieht nichts. Befindet sich das Objekt in einem anderen Zustand, so geht es ohne weitere Folgen in den Zustand DownloadCancelled über.

Siehe auch isFinished und stateChanged().

QString QWebEngineDownloadRequest::downloadDirectory() const

Gibt den Pfad des Download-Verzeichnisses zurück.

Hinweis: Getter-Funktion für die Eigenschaft downloadDirectory.

Siehe auch setDownloadDirectory().

QString QWebEngineDownloadRequest::downloadFileName() const

Gibt den Dateinamen zurück, unter dem die Datei heruntergeladen werden soll.

Hinweis: Getter-Funktion für die Eigenschaft downloadFileName.

Siehe auch setDownloadFileName().

quint32 QWebEngineDownloadRequest::id() const

Gibt die ID des heruntergeladenen Artikels zurück.

Hinweis: Getter-Funktion für die Eigenschaft id.

QWebEngineDownloadRequest::DownloadInterruptReason QWebEngineDownloadRequest::interruptReason() const

Gibt den Grund zurück, warum der Download unterbrochen wurde.

Hinweis: Getter-Funktion für die Eigenschaft interruptReason.

Siehe auch interruptReasonString().

QString QWebEngineDownloadRequest::interruptReasonString() const

Gibt eine von Menschen lesbare Beschreibung des Grundes für die Unterbrechung des Downloads zurück.

Hinweis: Getter-Funktion für die Eigenschaft interruptReasonString.

Siehe auch interruptReason().

[signal] void QWebEngineDownloadRequest::isPausedChanged()

Dieses Signal wird bei jeder Änderung von isPaused ausgegeben.

Hinweis: Benachrichtigungssignal für die Eigenschaft isPaused.

Siehe auch pause() und isPaused.

bool QWebEngineDownloadRequest::isSavePageDownload() const

Gibt true zurück, wenn es sich um eine Download-Anforderung zum Speichern einer Webseite handelt.

Hinweis: Getter-Funktion für die Eigenschaft isSavePageDownload.

Siehe auch savePageFormat() und setSavePageFormat().

QString QWebEngineDownloadRequest::mimeType() const

Gibt den MIME-Typ des Downloads zurück.

Hinweis: Getter-Funktion für die Eigenschaft mimeType.

QWebEnginePage *QWebEngineDownloadRequest::page() const

Gibt die Seite zurück, auf der der Download angefordert wurde. Wenn der Download nicht durch den Inhalt einer Seite ausgelöst wurde, wird nullptr zurückgegeben.

[slot] void QWebEngineDownloadRequest::pause()

Hält den Download an.

Hat keine Auswirkung, wenn der Status nicht DownloadInProgress ist. Ändert den Status nicht.

Siehe auch resume() und isPaused().

qint64 QWebEngineDownloadRequest::receivedBytes() const

Gibt die Datenmenge in Bytes zurück, die bisher heruntergeladen wurde.

-1 bedeutet, dass die Größe unbekannt ist.

Hinweis: Getter-Funktion für die Eigenschaft receivedBytes.

[slot] void QWebEngineDownloadRequest::resume()

Setzt den aktuellen Download fort, wenn er angehalten oder unterbrochen wurde.

Hat keine Auswirkungen, wenn der Status nicht DownloadInProgress oder DownloadInterrupted ist. Ändert den Status nicht.

Siehe auch pause(), isPaused(), und state().

QWebEngineDownloadRequest::SavePageFormat QWebEngineDownloadRequest::savePageFormat() const

Gibt das Format zurück, in dem die Webseite gespeichert werden soll, wenn es sich um eine Download-Anforderung für eine Webseite handelt.

Hinweis: Getter-Funktion für die Eigenschaft savePageFormat.

Siehe auch setSavePageFormat() und isSavePageDownload().

void QWebEngineDownloadRequest::setDownloadDirectory(const QString &directory)

Legt directory als Verzeichnispfad fest, in den die Datei heruntergeladen werden soll.

Der Download-Verzeichnispfad kann nur als Antwort auf das Signal QWebEngineProfile::downloadRequested() festgelegt werden, bevor der Download akzeptiert wird. Nach diesem Zeitpunkt hat diese Funktion keinen Einfluss mehr auf den Status des Download-Elements.

Hinweis: Setter-Funktion für die Eigenschaft downloadDirectory.

Siehe auch downloadDirectory().

void QWebEngineDownloadRequest::setDownloadFileName(const QString &fileName)

Legt fileName als Dateinamen fest, unter dem die Datei heruntergeladen werden soll.

Der Name der heruntergeladenen Datei kann nur als Antwort auf das Signal QWebEngineProfile::downloadRequested() festgelegt werden, bevor der Download akzeptiert wird. Nach diesem Zeitpunkt hat diese Funktion keinen Einfluss mehr auf den Status des Download-Elements.

Hinweis: Setter-Funktion für die Eigenschaft downloadFileName.

Siehe auch downloadFileName().

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

Legt die format fest, in der die Webseite gespeichert wird, wenn es sich um eine Download-Anforderung für eine Webseite handelt.

Hinweis: Setter-Funktion für die Eigenschaft savePageFormat.

Siehe auch savePageFormat() und isSavePageDownload().

QWebEngineDownloadRequest::DownloadState QWebEngineDownloadRequest::state() const

Liefert den aktuellen Status des heruntergeladenen Objekts.

Hinweis: Getter-Funktion für die Eigenschaft state.

Siehe auch DownloadState.

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

Dieses Signal wird ausgegeben, wenn sich die state des Downloads ändert.

Hinweis: Benachrichtigungssignal für die Eigenschaft state.

Siehe auch state() und DownloadState.

QString QWebEngineDownloadRequest::suggestedFileName() const

Gibt den vorgeschlagenen Dateinamen zurück.

Hinweis: Getter-Funktion für die Eigenschaft suggestedFileName.

qint64 QWebEngineDownloadRequest::totalBytes() const

Gibt die Gesamtmenge der herunterzuladenden Daten in Bytes zurück.

-1 bedeutet, dass die Größe unbekannt ist.

Hinweis: Getter-Funktion für die Eigenschaft totalBytes.

QUrl QWebEngineDownloadRequest::url() const

Gibt die Ursprungs-URL des Downloads zurück.

Hinweis: Getter-Funktion für die Eigenschaft url.

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