Класс QWebEngineDownloadItem
Класс QWebEngineDownloadItem предоставляет информацию о загружаемом файле. Подробнее...
| Заголовок: | #include <QWebEngineDownloadItem> |
| qmake: | QT += webenginewidgets |
| С тех пор: | Qt 5.5 |
| Наследует: | QObject |
Общедоступные типы
| перечисление | DownloadInterruptReason { НетПричин, ОшибкаФайла, ОтказВДоступеКФайлу, НетМестаНаДиске, ..., ОтменаПользователем } |
| перечисление | DownloadState { ЗапросЗагрузки, ЗагрузкаВХoде, ЗагрузкаЗавершена, ЗагрузкаОтменена, ЗагрузкаПрервана } |
| перечисление | SavePageFormat { НеизвестныйФорматСохранения, ФорматСохраненияЕдиногоHtml, ФорматСохраненияПолногоHtml, ФорматСохраненияMimeHtml } |
Общедоступные функции
| 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 |
- 31 общедоступная функция, унаследованная от QObject
Открытые слоты
| void | accept() |
| void | cancel() |
| void | pause() |
| void | resume() |
- 1 открытый слот, унаследованный от QObject
Сигналы
| void | downloadProgress(qint64 bytesReceived, qint64 bytesTotal) |
| void | finished() |
| void | isPausedChanged(bool isPaused) |
| void | stateChanged(QWebEngineDownloadItem::DownloadState state) |
- 2 сигнала, унаследованные от QObject
Статические общедоступные члены
| const QMetaObject | staticMetaObject |
- 9 статических общедоступных членов, унаследованных от QObject
Дополнительные наследуемые члены
Подробное описание
Класс QWebEngineDownloadItem предоставляет информацию о загружаемом файле.
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().
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, если загрузка завершена (завершена, отменена или прервана и невозобновляема).
См. также finished() и state().
bool QWebEngineDownloadItem::isPaused() const
Возвращает значение true, если загрузка приостановлена.
[signal] void QWebEngineDownloadItem::isPausedChanged(bool isPaused)
Этот сигнал излучается всякий раз, когда значение isPaused изменяется.
Эта функция была добавлена в Qt 5.10.
См. также pause() и isPaused().
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().
[slot] void QWebEngineDownloadItem::pause()
Приостанавливает загрузку.
Не имеет эффекта, если состояние не DownloadInProgress. Не изменяет состояние.
Эта функция была добавлена в Qt 5.10.
См. также resume() и isPaused().
qint64 QWebEngineDownloadItem::receivedBytes() const
Возвращает количество данных в байтах, загруженных до настоящего момента.
-1 означает, что размер неизвестен.
[slot] void QWebEngineDownloadItem::resume()
Возобновляет текущую загрузку, если она была приостановлена или прервана.
Не имеет эффекта, если состояние не DownloadInProgress или DownloadInterrupted. Не изменяет состояние.
Эта функция была добавлена в Qt 5.10.
См. также pause(), isPaused() и state().
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.
[signal] void QWebEngineDownloadItem::stateChanged(QWebEngineDownloadItem::DownloadState state)
Этот сигнал излучается всякий раз, когда состояние загрузки изменяется.
См. также state() и 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.12/qwebenginedownloaditem.html