Класс QWebEngineDownloadItem
Класс QWebEngineDownloadItem предоставляет информацию о загружаемом файле. Подробнее...
| Заголовок: | #include <QWebEngineDownloadItem> |
| qmake: | QT += webenginewidgets |
| С тех пор: | Qt 5.5 |
| Наследует: | QObject |
Этот класс был представлен в Qt 5.5.
Типы
| Перечисление | DownloadInterruptReason { NoReason, FileFailed, FileAccessDenied, FileNoSpace, FileNameTooLong, …, UserCanceled } |
| Перечисление | DownloadState { DownloadRequested, DownloadInProgress, DownloadCompleted, DownloadCancelled, DownloadInterrupted } |
| Перечисление | SavePageFormat { UnknownSaveFormat, SingleHtmlSaveFormat, CompleteHtmlSaveFormat, MimeHtmlSaveFormat } |
Открытые функции
| QString | downloadDirectory() const |
| QString | downloadFileName() const |
| 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 |
| qint64 | receivedBytes() const |
| QWebEngineDownloadItem::SavePageFormat | savePageFormat() const |
| void | setDownloadDirectory(const QString &directory) |
| void | setDownloadFileName(const QString &fileName) |
| void | setSavePageFormat(QWebEngineDownloadItem::SavePageFormat format) |
| QWebEngineDownloadItem::DownloadState | state() const |
| QString | suggestedFileName() 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(), то запрос на загрузку будет автоматически отклонен, и ничего не будет записано на диск.
Примечание: Некоторые свойства, такие как установка пути и имени файла, где будет сохранён файл (см. downloadDirectory() и downloadFileName()), могут быть изменены только до вызова 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.
QString QWebEngineDownloadItem::downloadDirectory() const
Возвращает путь к каталогу загрузки.
Эта функция была добавлена в Qt 5.14.
См. также setDownloadDirectory().
QString QWebEngineDownloadItem::downloadFileName() const
Возвращает имя файла, в который будет загружен файл.
Эта функция была добавлена в Qt 5.14.
См. также setDownloadFileName().
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, если эта загрузка приостановлена.
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.
qint64 QWebEngineDownloadItem::receivedBytes() const
Возвращает количество данных в байтах, загруженных до сих пор.
-1 означает, что размер неизвестен.
QWebEngineDownloadItem::SavePageFormat QWebEngineDownloadItem::savePageFormat() const
Возвращает формат, в котором будет сохранена веб-страница, если это запрос на загрузку веб-страницы.
Эта функция была добавлена в Qt 5.7.
См. также setSavePageFormat() и isSavePageDownload().
void QWebEngineDownloadItem::setDownloadDirectory(const QString &directory)
Устанавливает directory в качестве пути к каталогу для загрузки файла.
Путь к каталогу загрузки можно задать только в ответ на сигнал QWebEngineProfile::downloadRequested() перед принятием загрузки. После этого эта функция не влияет на состояние элемента загрузки.
Эта функция была добавлена в Qt 5.14.
См. также downloadDirectory().
void QWebEngineDownloadItem::setDownloadFileName(const QString &fileName)
Устанавливает fileName в качестве имени файла для загрузки файла.
Имя файла загрузки можно задать только в ответ на сигнал QWebEngineProfile::downloadRequested() перед принятием загрузки. После этого эта функция не влияет на состояние элемента загрузки.
Эта функция была добавлена в Qt 5.14.
См. также downloadFileName().
void QWebEngineDownloadItem::setSavePageFormat(QWebEngineDownloadItem::SavePageFormat format)
Устанавливает формат сохранения веб-страницы, если это запрос на загрузку веб-страницы.
Эта функция была добавлена в Qt 5.7.
См. также savePageFormat() и isSavePageDownload().
QWebEngineDownloadItem::DownloadState QWebEngineDownloadItem::state() const
Возвращает текущее состояние элемента загрузки.
См. также DownloadState.
QString QWebEngineDownloadItem::suggestedFileName() const
Возвращает предложенное имя файла.
Эта функция была добавлена в Qt 5.14.
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.14/qwebenginedownloaditem.html