Класс QWebEngineDownloadItem
Класс QWebEngineDownloadItem предоставляет информацию о загрузке. Подробнее...
| Заголовок: | #include <QWebEngineDownloadItem> |
| qmake: | QT += webenginewidgets |
| С версии: | Qt 5.5 |
| Наследует: | QObject |
Этот класс был представлен в Qt 5.5.
Публичные типы
| перечисление | DownloadInterruptReason { NoReason, FileFailed, FileAccessDenied, FileNoSpace, ..., UserCanceled } |
| перечисление | DownloadState { DownloadRequested, DownloadInProgress, DownloadCompleted, DownloadCancelled, DownloadInterrupted } |
| перечисление | SavePageFormat { UnknownSaveFormat, SingleHtmlSaveFormat, CompleteHtmlSaveFormat, MimeHtmlSaveFormat } |
Публичные функции
| quint32 | id() const |
| QWebEngineDownloadItem::DownloadInterruptReason | interruptReason() const |
| QString | interruptReasonString() const |
| bool | isFinished() const |
| bool | isPaused() const |
| bool | isSavePageDownload() const |
| QString | mimeType() const |
| QWebEnginePage * | page() const |
| QString | path() const |
| qint64 | receivedBytes() const |
| QWebEngineDownloadItem::SavePageFormat | savePageFormat() const |
| void | setPath(QString path) |
| void | setSavePageFormat(QWebEngineDownloadItem::SavePageFormat format) |
| QWebEngineDownloadItem::DownloadState | state() const |
| qint64 | totalBytes() const |
| QUrl | url() const |
Публичные слоты
| void | accept() |
| void | cancel() |
| void | pause() |
| void | resume() |
Сигналы
| void | downloadProgress(qint64 bytesReceived, qint64 bytesTotal) |
| void | finished() |
| void | isPausedChanged(bool isPaused) |
| void | stateChanged(QWebEngineDownloadItem::DownloadState state) |
Подробное описание
QWebEngineDownloadItem моделирует загрузку на протяжении всего её жизненного цикла, начиная с запроса на загрузку и заканчивая завершённой загрузкой. Его можно использовать, например, для получения информации о новых загрузках, мониторинга прогресса и приостановки, возобновления и отмены загрузок.
Загрузки обычно инициируются взаимодействием пользователя с веб-страницей. Ответственность за уведомление приложения о новых запросах на загрузку лежит на QWebEngineProfile, который делает это путём выдачи сигнала downloadRequested вместе с недавно созданным QWebEngineDownloadItem. Затем приложение может изучить этот элемент и принять решение о том, принять его или нет. Обработчик сигнала должен явно вызвать accept() для элемента, чтобы Qt WebEngine фактически начал загрузку и запись данных на диск. Если никакой обработчик сигнала не вызывает accept(), запрос на загрузку будет автоматически отклонён, и ничего не будет записано на диск.
Примечание: Некоторые свойства, такие как path, в котором будет сохранён файл, могут быть изменены только до вызова accept().
Жизненный цикл объекта
Все элементы гарантированно остаются валидными во время выдачи сигнала downloadRequested. Если accept() не вызывается ни одним обработчиком сигнала, то элемент будет удалён немедленно после выдачи сигнала. Это означает, что приложение не должно хранить ссылки на отклоненные элементы загрузки. Это также означает, что приложение не должно использовать очереди для обработки этого сигнала.
Если accept() вызывается обработчиком сигнала, тогда QWebEngineProfile принимает владение элементом. Тем не менее, для приложения безопасно удалить элемент в любое время, кроме обработки сигнала downloadRequested. Поскольку QWebEngineProfile является долгоживущим объектом, на самом деле рекомендуется, чтобы приложение удаляло любые элементы, которые больше не нужны.
Примечание: Удаление элемента также автоматически отменяет загрузку начиная с версии 5.12.2, но для совместимости рекомендуется отменять вручную перед удалением.
Загрузки веб-страниц
В дополнение к обычным файловым загрузкам, которые просто извлекают некоторые сырые байты из сети и записывают их на диск, Qt WebEngine также поддерживает сохранение полных веб-страниц, что включает в себя разбор HTML-страницы, загрузку зависимых ресурсов и, возможно, упаковку всего в специальный формат файла (savePageFormat). Чтобы проверить, предназначена ли загрузка для файла или веб-страницы, используйте isSavePageDownload.
См. также QWebEngineProfile, QWebEngineProfile::downloadRequested, QWebEnginePage::download и QWebEnginePage::save.
Документация по типу членов
перечисление QWebEngineDownloadItem::DownloadInterruptReason
Описывает причину прерывания загрузки:
| Константа | Значение | Описание |
|---|---|---|
QWebEngineDownloadItem::NoReason |
0 |
Неизвестная причина или не прервано. |
QWebEngineDownloadItem::FileFailed |
1 |
Общее повреждение операции с файлом. |
QWebEngineDownloadItem::FileAccessDenied |
2 |
Файл не может быть записан локально из-за ограничений доступа. |
QWebEngineDownloadItem::FileNoSpace |
3 |
Недостаточно места на целевом диске. |
QWebEngineDownloadItem::FileNameTooLong |
5 |
Имя каталога или файла слишком длинное. |
QWebEngineDownloadItem::FileTooLarge |
6 |
Размер файла превышает ограничение файловой системы. |
QWebEngineDownloadItem::FileVirusInfected |
7 |
Файл заражен вирусом. |
QWebEngineDownloadItem::FileTransientError |
10 |
Временная проблема (например, файл используется, недостаточно памяти или одновременно открыто слишком много файлов). |
QWebEngineDownloadItem::FileBlocked |
11 |
Файл заблокирован из-за локальной политики. |
QWebEngineDownloadItem::FileSecurityCheckFailed |
12 |
Попытка проверки безопасности загрузки не удалась по непредвиденным причинам. |
QWebEngineDownloadItem::FileTooShort |
13 |
При открытии файла была предпринята попытка перейти за пределы файла (в рамках возобновления ранее прерванной загрузки). |
QWebEngineDownloadItem::FileHashMismatch |
14 |
Частичный файл не соответствует ожидаемой хеш-сумме. |
QWebEngineDownloadItem::NetworkFailed |
20 |
Общее сетевое повреждение. |
QWebEngineDownloadItem::NetworkTimeout |
21 |
Операция сети истекла. |
QWebEngineDownloadItem::NetworkDisconnected |
22 |
Сетевое соединение было прервано. |
QWebEngineDownloadItem::NetworkServerDown |
23 |
Сервер отключился. |
QWebEngineDownloadItem::NetworkInvalidRequest |
24 |
Запрос сети был недействительным (например, исходный или перенаправленный URL недействителен, имеет неподдерживаемый протокол или запрещен политикой). |
QWebEngineDownloadItem::ServerFailed |
30 |
Общее повреждение сервера. |
QWebEngineDownloadItem::ServerBadContent |
33 |
Сервер не имеет запрошенных данных. |
QWebEngineDownloadItem::ServerUnauthorized |
34 |
Сервер не авторизовал доступ к ресурсу. |
QWebEngineDownloadItem::ServerCertProblem |
35 |
Возникла проблема с сертификатом сервера. |
QWebEngineDownloadItem::ServerForbidden |
36 |
Доступ запрещен сервером. |
QWebEngineDownloadItem::ServerUnreachable |
37 |
Неожиданный ответ сервера (может указывать на то, что отвечающий сервер не является целевым). |
QWebEngineDownloadItem::UserCanceled |
40 |
Пользователь отменил загрузку. |
Этот перечисление был введен или изменен в Qt 5.9.
enum QWebEngineDownloadItem::DownloadState
Это перечисление описывает состояние загрузки:
| Константа | Значение | Описание |
|---|---|---|
QWebEngineDownloadItem::DownloadRequested |
0 |
Загрузка запрошена, но еще не принята. |
QWebEngineDownloadItem::DownloadInProgress |
1 |
Загрузка в процессе. |
QWebEngineDownloadItem::DownloadCompleted |
2 |
Загрузка завершена успешно. |
QWebEngineDownloadItem::DownloadCancelled |
3 |
Загрузка отменена. |
QWebEngineDownloadItem::DownloadInterrupted |
4 |
Загрузка прервана (сервером или из-за потери соединения). |
enum QWebEngineDownloadItem::SavePageFormat
Это перечисление описывает формат, используемый для сохранения веб-страницы.
| Константа | Значение | Описание |
|---|---|---|
QWebEngineDownloadItem::UnknownSaveFormat |
-1 |
Это не запрос на загрузку полной веб-страницы. |
QWebEngineDownloadItem::SingleHtmlSaveFormat |
0 |
Страница сохраняется как единственная HTML-страница. Ресурсы, такие как изображения, не сохраняются. |
QWebEngineDownloadItem::CompleteHtmlSaveFormat |
1 |
Страница сохраняется как полная HTML-страница, например, каталог, содержащий единственную HTML-страницу и ресурсы. |
QWebEngineDownloadItem::MimeHtmlSaveFormat |
2 |
Страница сохраняется как полная веб-страница в формате MIME HTML. |
Это перечисление было введено или изменено в Qt 5.7.
Документация по функциям-членам
[slot] void QWebEngineDownloadItem::accept()
Принимает текущий запрос на загрузку, что запустит загрузку.
Если элемент находится в состоянии DownloadRequested, то он перейдет в состояние DownloadInProgress, и загрузка начнется. Если элемент находится в любом другом состоянии, ничего не произойдет.
См. также finished() и stateChanged().
[slot] void QWebEngineDownloadItem::cancel()
Отменяет текущую загрузку.
Если элемент находится в состоянии DownloadInProgress, то он перейдет в состояние DownloadCancelled, загрузка остановится, а частично загруженные файлы будут удалены с диска.
Если элемент находится в состоянии DownloadCompleted, ничего не произойдет. Если элемент находится в любом другом состоянии, он перейдет в состояние DownloadCancelled без дальнейших последствий.
См. также finished() и stateChanged().
[signal] void QWebEngineDownloadItem::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
Этот сигнал подается для указания прогресса запроса на загрузку.
Параметр bytesReceived указывает количество полученных байтов, а bytesTotal указывает общее количество байтов, ожидаемых к загрузке. Если размер загружаемого файла неизвестен, bytesTotal будет равен 0.
См. также totalBytes() и receivedBytes().
[signal] void QWebEngineDownloadItem::finished()
Этот сигнал подается при завершении загрузки.
См. также state() и isFinished().
[signal] void QWebEngineDownloadItem::isPausedChanged(bool isPaused)
Этот сигнал подается всякий раз, когда isPaused меняется.
Эта функция была введена в Qt 5.10.
См. также pause() и isPaused().
[slot] void QWebEngineDownloadItem::pause()
Приостанавливает загрузку.
Не имеет эффекта, если состояние не DownloadInProgress. Не меняет состояние.
Эта функция была введена в Qt 5.10.
См. также resume() и isPaused().
[slot] void QWebEngineDownloadItem::resume()
Возобновляет текущую загрузку, если она была приостановлена или прервана.
Не имеет эффекта, если состояние не DownloadInProgress или DownloadInterrupted. Не меняет состояние.
Эта функция была добавлена в Qt 5.10.
См. также pause(), isPaused() и state().
[signal] void QWebEngineDownloadItem::stateChanged(QWebEngineDownloadItem::DownloadState state)
Этот сигнал испускается всякий раз, когда состояние загрузки state меняется.
См. также state() и DownloadState.
quint32 QWebEngineDownloadItem::id() const
Возвращает идентификатор элемента загрузки.
QWebEngineDownloadItem::DownloadInterruptReason QWebEngineDownloadItem::interruptReason() const
Возвращает причину прерывания загрузки.
Эта функция была добавлена в Qt 5.9.
См. также interruptReasonString().
QString QWebEngineDownloadItem::interruptReasonString() const
Возвращает удобочитаемое описание причины прерывания загрузки.
Эта функция была добавлена в Qt 5.9.
См. также interruptReason().
bool QWebEngineDownloadItem::isFinished() const
Возвращает значение true, если загрузка завершена (завершена, отменена или прервана без возможности возобновления), иначе false.
См. также finished() и state().
bool QWebEngineDownloadItem::isPaused() const
Возвращает значение true, если загрузка приостановлена, иначе false.
bool QWebEngineDownloadItem::isSavePageDownload() const
Возвращает true, если это запрос на сохранение веб-страницы.
Эта функция была добавлена в Qt 5.11.
См. также savePageFormat() и setSavePageFormat().
QString QWebEngineDownloadItem::mimeType() const
Возвращает MIME-тип загрузки.
Эта функция была добавлена в Qt 5.6.
QWebEnginePage *QWebEngineDownloadItem::page() const
Возвращает страницу, на которой был запрошен запрос на загрузку. Если загрузка не была вызвана контентом на странице, возвращается nullptr.
Эта функция была добавлена в Qt 5.12.
QString QWebEngineDownloadItem::path() const
Возвращает полный целевой путь, куда загружаются данные.
Путь включает имя файла. Предлагаемый по умолчанию путь — стандартное расположение для загрузок, а имя файла определяется таким образом, чтобы не перезаписывать уже существующие файлы.
См. также setPath().
qint64 QWebEngineDownloadItem::receivedBytes() const
Возвращает количество уже загруженных данных в байтах.
-1 означает, что размер неизвестен.
QWebEngineDownloadItem::SavePageFormat QWebEngineDownloadItem::savePageFormat() const
Возвращает формат, в котором будет сохранена веб-страница, если это запрос на загрузку веб-страницы.
Эта функция была добавлена в Qt 5.7.
См. также setSavePageFormat() и isSavePageDownload().
void QWebEngineDownloadItem::setPath(QString path)
Устанавливает полный целевой путь для сохранения файла.
path также должен включать имя файла. Путь к загружаемому файлу может быть задан только в ответ на сигнал QWebEngineProfile::downloadRequested() перед подтверждением загрузки. После этого эта функция не оказывает никакого влияния на состояние элемента загрузки.
См. также path().
void QWebEngineDownloadItem::setSavePageFormat(QWebEngineDownloadItem::SavePageFormat format)
Устанавливает формат сохранения веб-страницы, если это запрос на загрузку веб-страницы.
Эта функция была добавлена в Qt 5.7.
См. также savePageFormat() и isSavePageDownload().
QWebEngineDownloadItem::DownloadState QWebEngineDownloadItem::state() const
Возвращает текущее состояние элемента загрузки.
См. также DownloadState.
qint64 QWebEngineDownloadItem::totalBytes() const
Возвращает общее количество загружаемых данных в байтах.
-1 означает, что размер неизвестен.
QUrl QWebEngineDownloadItem::url() const
Возвращает исходный URL загрузки.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qwebenginedownloaditem.html