Класс QWebEngineDownloadItem
Класс QWebEngineDownloadItem предоставляет информацию о загрузке. Подробнее...
| Заголовок: | #include <QWebEngineDownloadItem> |
| qmake: | QT += webenginewidgets |
| С тех пор: | Qt 5.5 |
| Наследует: | QObject |
Этот класс был представлен в Qt 5.5.
Типы Public
| перечисление | DownloadInterruptReason { NoReason, FileFailed, FileAccessDenied, FileNoSpace, FileNameTooLong, …, UserCanceled } |
| перечисление | DownloadState { DownloadRequested, DownloadInProgress, DownloadCompleted, DownloadCancelled, DownloadInterrupted } |
| перечисление | SavePageFormat { UnknownSaveFormat, SingleHtmlSaveFormat, CompleteHtmlSaveFormat, MimeHtmlSaveFormat } |
Public Функции
| 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 |
Public Слоты
| 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.15/qwebenginedownloaditem.html