IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

QWebEngineDownloadItem Class

The QWebEngineDownloadItem class provides information about a download.

This class was introduced in Qt 5.5.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

QWebEngineDownloadItem Class

  • Header: QWebEngineDownloadItem

  • Since: Qt 5.5

  • qmake: QT += webenginewidgets

  • Inherits: QObject

Detailed Description

QWebEngineDownloadItem models a download throughout its life cycle, starting with a pending download request and finishing with a completed download. It can be used, for example, to get information about new downloads, to monitor progress, and to pause, resume, and cancel downloads.

Downloads are usually triggered by user interaction on a web page. It is the QWebEngineProfile's responsibility to notify the application of new download requests, which it does by emitting the downloadRequested signal together with a newly created QWebEngineDownloadItem. The application can then examine this item and decide whether to accept it or not. A signal handler must explicitly call accept() on the item for Qt WebEngine to actually start downloading and writing data to disk. If no signal handler calls accept(), then the download request will be automatically rejected and nothing will be written to disk.

Some properties, like the path under which the file will be saved, can only be changed before calling accept().

Object Life Cycle

All items are guaranteed to be valid during the emission of the downloadRequested signal. If accept() is not called by any signal handler, then the item will be deleted immediately after signal emission. This means that the application must not keep references to rejected download items. It also means the application should not use a queued connection to this signal.

If accept() is called by a signal handler, then the QWebEngineProfile will take ownership of the item. However, it is safe for the application to delete the item at any time, except during the handling of the downloadRequested signal. The QWebEngineProfile being a long-lived object, it is in fact recommended that the application delete any items it is no longer interested in.

Deleting an item will also automatically cancel a download since 5.12.2, but it is recommended to cancel manually before deleting for portability.

Web Page Downloads

In addition to normal file downloads, which consist simply of retrieving some raw bytes from the network and writing them to disk, Qt WebEngine also supports saving complete web pages, which involves parsing the page's HTML, downloading any dependent resources, and potentially packaging everything into a special file format (savePageFormat). To check if a download is for a file or a web page, use isSavePageDownload.

See Also

Member Type Documentation

 

[since 5.9] enum QWebEngineDownloadItem::DownloadInterruptReason

Describes the reason why a download was interrupted:

Constant

Value

Description

QWebEngineDownloadItem::NoReason

0

Unknown reason or not interrupted.

QWebEngineDownloadItem::FileFailed

1

General file operation failure.

QWebEngineDownloadItem::FileAccessDenied

2

The file cannot be written locally, due to access restrictions.

QWebEngineDownloadItem::FileNoSpace

3

Insufficient space on the target drive.

QWebEngineDownloadItem::FileNameTooLong

5

The directory or file name is too long.

QWebEngineDownloadItem::FileTooLarge

6

The file size exceeds the file system limitation.

QWebEngineDownloadItem::FileVirusInfected

7

The file is infected with a virus.

QWebEngineDownloadItem::FileTransientError

10

Temporary problem (for example the file is in use, out of memory, or too many files are opened at once).

QWebEngineDownloadItem::FileBlocked

11

The file was blocked due to local policy.

QWebEngineDownloadItem::FileSecurityCheckFailed

12

An attempt to check the safety of the download failed due to unexpected reasons.

QWebEngineDownloadItem::FileTooShort

13

An attempt was made to seek past the end of a file when opening a file (as part of resuming a previously interrupted download).

QWebEngineDownloadItem::FileHashMismatch

14

The partial file did not match the expected hash.

QWebEngineDownloadItem::NetworkFailed

20

General network failure.

QWebEngineDownloadItem::NetworkTimeout

21

The network operation has timed out.

QWebEngineDownloadItem::NetworkDisconnected

22

The network connection has been terminated.

QWebEngineDownloadItem::NetworkServerDown

23

The server has gone down.

QWebEngineDownloadItem::NetworkInvalidRequest

24

The network request was invalid (for example, the original or redirected URL is invalid, has an unsupported scheme, or is disallowed by policy).

QWebEngineDownloadItem::ServerFailed

30

General server failure.

QWebEngineDownloadItem::ServerBadContent

33

The server does not have the requested data.

QWebEngineDownloadItem::ServerUnauthorized

34

The server did not authorize access to the resource.

QWebEngineDownloadItem::ServerCertProblem

35

A problem with the server certificate occurred.

QWebEngineDownloadItem::ServerForbidden

36

Access forbidden by the server.

QWebEngineDownloadItem::ServerUnreachable

37

Unexpected server response (might indicate that the responding server may not be the intended server).

QWebEngineDownloadItem::UserCanceled

40

The user canceled the download.

This enum was introduced or modified in Qt 5.9.

enum QWebEngineDownloadItem::DownloadState

This enum describes the state of the download:

Constant

Value

Description

QWebEngineDownloadItem::DownloadRequested

0

Download has been requested, but has not been accepted yet.

QWebEngineDownloadItem::DownloadInProgress

1

Download is in progress.

QWebEngineDownloadItem::DownloadCompleted

2

Download completed successfully.

QWebEngineDownloadItem::DownloadCancelled

3

Download has been cancelled.

QWebEngineDownloadItem::DownloadInterrupted

4

Download has been interrupted (by the server or because of lost connectivity).

[since 5.7] enum QWebEngineDownloadItem::SavePageFormat

This enum describes the format that is used to save a web page.

Constant

Value

Description

QWebEngineDownloadItem::UnknownSaveFormat

-1

This is not a request for downloading a complete web page.

QWebEngineDownloadItem::SingleHtmlSaveFormat

0

The page is saved as a single HTML page. Resources such as images are not saved.

QWebEngineDownloadItem::CompleteHtmlSaveFormat

1

The page is saved as a complete HTML page, for example a directory containing the single HTML page and the resources.

QWebEngineDownloadItem::MimeHtmlSaveFormat

2

The page is saved as a complete web page in the MIME HTML format.

This enum was introduced or modified in Qt 5.7.

Member Function Documentation

 

void QWebEngineDownloadItem::accept()

Accepts the current download request, which will start the download.

If the item is in the DownloadRequested state, then it will transition into the DownloadInProgress state and the downloading will begin. If the item is in any other state, then nothing will happen.

See Also

See also finished(), stateChanged()

void QWebEngineDownloadItem::cancel()

Cancels the current download.

If the item is in the DownloadInProgress state, then it will transition into the DownloadCancelled state, the downloading will stop, and partially downloaded files will be deleted from disk.

If the item is in the DownloadCompleted state, then nothing will happen. If the item is in any other state, then it will transition into the DownloadCancelled state without further effect.

See Also

See also finished(), stateChanged()

void QWebEngineDownloadItem::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)

This signal is emitted to indicate the progress of the download request.

The bytesReceived parameter indicates the number of bytes received, while bytesTotal indicates the total number of bytes expected to be downloaded. If the size of the file to be downloaded is not known, bytesTotal will be 0.

See Also

See also totalBytes(), receivedBytes()

void QWebEngineDownloadItem::finished()

This signal is emitted when the download finishes.

See Also

See also state(), isFinished()

quint32 QWebEngineDownloadItem::id() const

Returns the download item's ID.

[since 5.9] QWebEngineDownloadItem::DownloadInterruptReason QWebEngineDownloadItem::interruptReason() const

Returns the reason why the download was interrupted.

This function was introduced in Qt 5.9.

See Also

[since 5.9] QString QWebEngineDownloadItem::interruptReasonString() const

Returns a human-readable description of the reason for interrupting the download.

This function was introduced in Qt 5.9.

See Also

See also interruptReason()

bool QWebEngineDownloadItem::isFinished() const

Returns whether this download is finished (completed, cancelled, or non-resumable interrupted state).

See Also

See also finished(), state()

bool QWebEngineDownloadItem::isPaused() const

Returns whether this download is paused.

See Also

See also pause(), resume()

[since 5.10] void QWebEngineDownloadItem::isPausedChanged(bool isPaused)

This signal is emitted whenever isPaused changes.

This function was introduced in Qt 5.10.

See Also

See also pause(), isPaused()

[since 5.11] bool QWebEngineDownloadItem::isSavePageDownload() const

Returns true if this is a download request for saving a web page.

This function was introduced in Qt 5.11.

See Also

[since 5.6] QString QWebEngineDownloadItem::mimeType() const

Returns the MIME type of the download.

This function was introduced in Qt 5.6.

[since 5.12] QWebEnginePage *QWebEngineDownloadItem::page() const

Returns the page the download was requested on. If the download was not triggered by content in a page, nullptr is returned.

This function was introduced in Qt 5.12.

QString QWebEngineDownloadItem::path() const

Returns the full target path where data is being downloaded to.

The path includes the file name. The default suggested path is the standard download location and file name is deduced not to overwrite already existing files.

See Also

See also setPath()

[since 5.10] void QWebEngineDownloadItem::pause()

Pauses the download.

Has no effect if the state is not DownloadInProgress. Does not change the state.

This function was introduced in Qt 5.10.

See Also

See also resume(), isPaused()

qint64 QWebEngineDownloadItem::receivedBytes() const

Returns the amount of data in bytes that has been downloaded so far.

-1 means the size is unknown.

[since 5.10] void QWebEngineDownloadItem::resume()

Resumes the current download if it was paused or interrupted.

Has no effect if the state is not DownloadInProgress or DownloadInterrupted. Does not change the state.

This function was introduced in Qt 5.10.

See Also

See also pause(), isPaused(), state()

[since 5.7] QWebEngineDownloadItem::SavePageFormat QWebEngineDownloadItem::savePageFormat() const

Returns the format the web page will be saved in if this is a download request for a web page.

This function was introduced in Qt 5.7.

See Also

void QWebEngineDownloadItem::setPath(QString path)

Sets the full target path to download the file to.

The path should also include the file name. The download path can only be set in response to the QWebEngineProfile::downloadRequested() signal before the download is accepted. Past that point, this function has no effect on the download item's state.

See Also

See also path()

[since 5.7] void QWebEngineDownloadItem::setSavePageFormat(QWebEngineDownloadItem::SavePageFormat format)

Sets the format the web page will be saved in if this is a download request for a web page.

This function was introduced in Qt 5.7.

See Also

QWebEngineDownloadItem::DownloadState QWebEngineDownloadItem::state() const

Returns the download item's current state.

See Also

See also DownloadState

void QWebEngineDownloadItem::stateChanged(QWebEngineDownloadItem::DownloadState state)

This signal is emitted whenever the download's state changes.

See Also

See also state(), DownloadState

qint64 QWebEngineDownloadItem::totalBytes() const

Returns the the total amount of data to download in bytes.

-1 means the size is unknown.

QUrl QWebEngineDownloadItem::url() const

Returns the download's origin URL.

Obsolete Members for QWebEngineDownloadItem

The following members of class QWebEngineDownloadItem are deprecated. We strongly advise against using them in new code.

Obsolete Member Type Documentation

 
[since 5.8] enum QWebEngineDownloadItem::DownloadType

This enum is deprecated. We strongly advise against using it in new code.

Describes the requested download's type.

Constant

Value

Description

QWebEngineDownloadItem::Attachment

0

The web server's response includes a Content-Disposition header with the attachment directive. If Content-Disposition is present in the reply, the web server is indicating that the client should prompt the user to save the content regardless of the content type. See RFC 2616 section 19.5.1 for details.

QWebEngineDownloadItem::DownloadAttribute

1

The user clicked a link with the download attribute.

QWebEngineDownloadItem::UserRequested

2

The user initiated the download, for example by selecting a web action.

QWebEngineDownloadItem::SavePage

3

Saving of the current page was requested (for example by the QWebEnginePage::SavePage web action).

This enum was introduced or modified in Qt 5.8.

Obsolete Member Function Documentation

 
[since 5.8] QWebEngineDownloadItem::DownloadType QWebEngineDownloadItem::type() const

This function is deprecated. We strongly advise against using it in new code.

Returns the requested download's type.

This property works unreliably, except for SavePage downloads. Use isSavePageDownload() instead.

This function was introduced in Qt 5.8.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+