Auf dieser Seite

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. Dazu wird das Signal downloadRequested zusammen mit einer neu erstellten QWebEngineDownloadRequest ausgegeben. Die Anwendung kann dann dieses Element prüfen und entscheiden, ob sie es annimmt oder nicht. Wenn eine Entscheidung getroffen wurde, muss die Anwendung explizit accept() oder cancel() für das Element aufrufen, damit Qt WebEngine tatsächlich mit dem Herunterladen beginnt oder die Anforderung zurückweist.

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

Lebenszyklus der Objekte

In jedem Fall übernimmt QWebEngineProfile das Eigentum an dem Objekt. Es ist jedoch sicher, dass die Anwendung das Objekt 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 Objekte 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.

Anforderungen zum Speichern von Webseiten werden automatisch akzeptiert und aus Bequemlichkeitsgründen vom Zustand DownloadInProgress aus gestartet. Der erste direkt angeschlossene downloadRequested Signalhandler kann dies durch den Aufruf von cancel() verhindern, andernfalls wird der Speichervorgang mit dem Schreiben von Daten auf die Festplatte beginnen.

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 lokaler Richtlinien 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

downloadDirectory : QString

Diese Eigenschaft enthält den Download-Verzeichnispfad.

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

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void downloadDirectoryChanged()

downloadFileName : QString

Diese Eigenschaft enthält den Dateinamen, 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. Danach hat diese Eigenschaft keinen Einfluss mehr auf den Status des Download-Elements.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void downloadFileNameChanged()

[read-only] id : const quint32

Diese Eigenschaft enthält die ID des Download-Elements.

Zugriffsfunktionen:

quint32 id() const

[read-only] interruptReason : DownloadInterruptReason

Diese Eigenschaft enthält den Grund, warum der Download unterbrochen wurde.

Zugriffsfunktionen:

QWebEngineDownloadRequest::DownloadInterruptReason interruptReason() const

Benachrichtigungssignal:

void interruptReasonChanged()

Siehe auch interruptReasonString.

[read-only] interruptReasonString : QString

Diese Eigenschaft enthält eine menschenlesbare Beschreibung des Grundes für die Unterbrechung des Downloads.

Zugriffsfunktionen:

QString interruptReasonString() const

Benachrichtigungssignal:

Siehe auch interruptReason.

[read-only] isFinished : 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 : bool

Diese Eigenschaft gibt an, ob der Download pausiert wird.

Zugriffsfunktionen:

bool isPaused() const

Benachrichtigungssignal:

Siehe auch pause() und resume().

[read-only] isSavePageDownload : const bool

Diese Eigenschaft gibt an, ob es sich um eine Download-Anforderung zum Speichern einer Webseite handelt.

Zugriffsfunktionen:

bool isSavePageDownload() const

Siehe auch savePageFormat.

[read-only] mimeType : QString

Diese Eigenschaft enthält den MIME-Typ des Downloads.

Zugriffsfunktionen:

QString mimeType() const

[read-only] receivedBytes : qint64

Diese Eigenschaft enthält die Datenmenge in Bytes, die bisher heruntergeladen wurde.

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

Zugriffsfunktionen:

qint64 receivedBytes() const

Benachrichtigungssignal:

void receivedBytesChanged()

savePageFormat : SavePageFormat

Diese Eigenschaft enthält das Format, in dem die Webseite gespeichert werden soll, wenn es sich um eine Download-Anforderung für eine Webseite handelt.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void savePageFormatChanged()

Siehe auch isSavePageDownload.

[read-only] state : DownloadState

Diese Eigenschaft enthält den aktuellen Status des Download-Elements.

Zugriffsfunktionen:

QWebEngineDownloadRequest::DownloadState state() const

Benachrichtigungssignal:

void stateChanged(QWebEngineDownloadRequest::DownloadState state)

Siehe auch DownloadState.

[read-only] suggestedFileName : const QString

Diese Eigenschaft enthält den vorgeschlagenen Dateinamen.

Zugriffsfunktionen:

QString suggestedFileName() const

[read-only] totalBytes : qint64

Diese Eigenschaft enthält die Gesamtmenge der herunterzuladenden Daten in Bytes.

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

Zugriffsfunktionen:

qint64 totalBytes() const

Benachrichtigungssignal:

void totalBytesChanged()

[read-only] url : const QUrl

Diese Eigenschaft enthält die Ursprungs-URL des Downloads.

Zugriffsfunktionen:

QUrl url() const

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().

[signal] void QWebEngineDownloadRequest::isPausedChanged()

Dieses Signal wird ausgegeben, wenn sich isPaused ändert.

Hinweis: Benachrichtigungssignal für die Eigenschaft isPaused.

Siehe auch pause() und isPaused.

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().

[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().

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

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