Класс QWebEngineDownloadRequest
Класс QWebEngineDownloadRequest предоставляет информацию о загрузке. Подробнее...
| Заголовок: | #include <QWebEngineDownloadRequest> |
| CMake: | find_package(Qt6 COMPONENTS WebEngineCore REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
| qmake: | QT += webenginecore |
| Создается из: | WebEngineDownloadRequest |
| Наследуется от: | QObject |
Типы публичного доступа
| Перечисление | DownloadInterruptReason { НетПричин, ОшибкаФайла, ДоступОтказан, НетМестаНаДиске, СлишкомДлинноеИмяФайла, …, ОтменаПользователем } |
| Перечисление | DownloadState { ЗапросЗагрузки, ЗагрузкаВПроцессе, ЗагрузкаЗавершена, ЗагрузкаОтменена, ЗагрузкаПрервана } |
| Перечисление | SavePageFormat { НеизвестныйФормат, SingleHtmlSaveFormat, CompleteHtmlSaveFormat, MimeHtmlSaveFormat } |
Свойства
- isFinished : const bool
- isPaused : const bool
Функции публичного доступа
| QString | downloadDirectory() const |
| QString | downloadFileName() const |
| quint32 | id() const |
| QWebEngineDownloadRequest::DownloadInterruptReason | interruptReason() const |
| QString | interruptReasonString() const |
| bool | isFinished() const |
| bool | isPaused() const |
| bool | isSavePageDownload() const |
| QString | mimeType() const |
| QWebEnginePage * | page() const |
| qint64 | receivedBytes() const |
| QWebEngineDownloadRequest::SavePageFormat | savePageFormat() const |
| void | setDownloadDirectory(const QString &directory) |
| void | setDownloadFileName(const QString &fileName) |
| void | setSavePageFormat(QWebEngineDownloadRequest::SavePageFormat format) |
| QWebEngineDownloadRequest::DownloadState | state() const |
| QString | suggestedFileName() const |
| qint64 | totalBytes() const |
| QUrl | url() const |
Слот публичного доступа
| void | accept() |
| void | cancel() |
| void | pause() |
| void | resume() |
Сигналы
| void | downloadDirectoryChanged() |
| void | downloadFileNameChanged() |
| void | interruptReasonChanged() |
| void | isFinishedChanged() |
| void | isPausedChanged() |
| void | receivedBytesChanged() |
| void | savePageFormatChanged() |
| void | stateChanged(QWebEngineDownloadRequest::DownloadState state) |
| void | totalBytesChanged() |
Подробное описание
QWebEngineDownloadRequest моделирует загрузку на протяжении всего её жизненного цикла, начиная с запроса на загрузку и заканчивая завершённой загрузкой. Его можно использовать, например, для получения информации о новых загрузках, для мониторинга прогресса и для приостановки, возобновления и отмены загрузок.
Загрузки обычно запускаются взаимодействием пользователя на веб-странице. Ответственность за уведомление приложения о новых запросах на загрузку лежит на QWebEngineProfile, который делает это, испуская сигнал downloadRequested вместе с только что созданным QWebEngineDownloadRequest. Приложение может затем проверить этот элемент и принять решение о принятии или отклонении. Обработчик сигнала должен явно вызвать 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.
Документация по типам членов
перечисление QWebEngineDownloadRequest::DownloadInterruptReason
Описание причины прерывания загрузки:
| Постоянная | Значение | Описание |
|---|---|---|
QWebEngineDownloadRequest::NoReason |
0 |
Неизвестная причина или загрузка не прервана. |
QWebEngineDownloadRequest::FileFailed |
1 |
Общее повреждение файловой операции. |
QWebEngineDownloadRequest::FileAccessDenied |
2 |
Файл не может быть записан локально из-за ограничений доступа. |
QWebEngineDownloadRequest::FileNoSpace |
3 |
Недостаточно места на целевом диске. |
QWebEngineDownloadRequest::FileNameTooLong |
5 |
Имя файла или каталога слишком длинное. |
QWebEngineDownloadRequest::FileTooLarge |
6 |
Размер файла превышает ограничение файловой системы. |
QWebEngineDownloadRequest::FileVirusInfected |
7 |
Файл инфицирован вирусом. |
QWebEngineDownloadRequest::FileTransientError |
10 |
Временная проблема (например, файл используется, недостаточно памяти или открыто слишком много файлов одновременно). |
QWebEngineDownloadRequest::FileBlocked |
11 |
Файл заблокирован из-за локальной политики. |
QWebEngineDownloadRequest::FileSecurityCheckFailed |
12 |
Попытка проверить безопасность загрузки завершилась по непредвиденным причинам. |
QWebEngineDownloadRequest::FileTooShort |
13 |
Была предпринята попытка перейти за конец файла при открытии файла (в рамках возобновления ранее прерванной загрузки). |
QWebEngineDownloadRequest::FileHashMismatch |
14 |
Частичный файл не совпадает с ожидаемой хеш-суммой. |
QWebEngineDownloadRequest::NetworkFailed |
20 |
Общее повреждение сети. |
QWebEngineDownloadRequest::NetworkTimeout |
21 |
Сеть истекла. |
QWebEngineDownloadRequest::NetworkDisconnected |
22 |
Подключение к сети было прервано. |
QWebEngineDownloadRequest::NetworkServerDown |
23 |
Сервер отключен. |
QWebEngineDownloadRequest::NetworkInvalidRequest |
24 |
Запрос сети был недействителен (например, исходный или перенаправленный URL недействителен, имеет неподдерживаемый протокол или запрещен политикой). |
QWebEngineDownloadRequest::ServerFailed |
30 |
Общее повреждение сервера. |
QWebEngineDownloadRequest::ServerBadContent |
33 |
Серверу нет запрашиваемых данных. |
QWebEngineDownloadRequest::ServerUnauthorized |
34 |
Сервер не авторизовал доступ к ресурсу. |
QWebEngineDownloadRequest::ServerCertProblem |
35 |
Произошла проблема с сертификатом сервера. |
QWebEngineDownloadRequest::ServerForbidden |
36 |
Доступ запрещен сервером. |
QWebEngineDownloadRequest::ServerUnreachable |
37 |
Неожиданный ответ сервера (может указывать на то, что сервер, отвечающий на запрос, не является предполагаемым сервером). |
QWebEngineDownloadRequest::UserCanceled |
40 |
Пользователь отменил загрузку. |
перечисление QWebEngineDownloadRequest::DownloadState
Это перечисление описывает состояние загрузки:
| Постоянная | Значение | Описание |
|---|---|---|
QWebEngineDownloadRequest::DownloadRequested |
0 |
Загрузка запрошена, но еще не принята. |
QWebEngineDownloadRequest::DownloadInProgress |
1 |
Загрузка в процессе. |
QWebEngineDownloadRequest::DownloadCompleted |
2 |
Загрузка завершена успешно. |
QWebEngineDownloadRequest::DownloadCancelled |
3 |
Загрузка отменена. |
QWebEngineDownloadRequest::DownloadInterrupted |
4 |
Загрузка прервана (сервером или из-за потери подключения). |
перечисление QWebEngineDownloadRequest::SavePageFormat
Это перечисление описывает формат сохранения веб-страницы.
| Постоянная | Значение | Описание |
|---|---|---|
QWebEngineDownloadRequest::UnknownSaveFormat |
-1 |
Это не запрос на загрузку полной веб-страницы. |
QWebEngineDownloadRequest::SingleHtmlSaveFormat |
0 |
Страница сохраняется как одна HTML-страница. Ресурсы, такие как изображения, не сохраняются. |
QWebEngineDownloadRequest::CompleteHtmlSaveFormat |
1 |
Страница сохраняется как полная HTML-страница, например, каталог, содержащий одну HTML-страницу и ресурсы. |
QWebEngineDownloadRequest::MimeHtmlSaveFormat |
2 |
Страница сохраняется как полная веб-страница в формате MIME HTML. |
Документация по свойствам
[read-only] isFinished : const bool
Это свойство содержит значение, указывающее, завершена ли эта загрузка (завершена, отменена или прервана и не может быть возобновлена).
Функции доступа:
| bool | isFinished() const |
Сигнал уведомления:
| void | isFinishedChanged() |
См. также state().
[read-only] isPaused : const bool
Это свойство содержит значение, указывающее, приостановлена ли эта загрузка.
Функции доступа:
| bool | isPaused() const |
Сигнал уведомления:
| void | isPausedChanged() |
Документация по функциям членов
[slot] void QWebEngineDownloadRequest::accept()
Принимает текущий запрос на загрузку, что запустит загрузку.
Если элемент находится в состоянии DownloadRequested, то он перейдет в состояние DownloadInProgress, и начнется загрузка. Если элемент находится в любом другом состоянии, то ничего не произойдет.
См. также isFinished и stateChanged().
[slot] void QWebEngineDownloadRequest::cancel()
Отменяет текущую загрузку.
Если элемент находится в состоянии DownloadInProgress, то он перейдет в состояние DownloadCancelled, загрузка остановится, а частично загруженные файлы будут удалены с диска.
END_OF_DOCUMENT_MARKERЕсли элемент находится в состоянии DownloadCompleted, ничего не произойдёт. Если элемент находится в любом другом состоянии, он перейдёт в состояние DownloadCancelled без дальнейших последствий.
См. также isFinished и stateChanged().
[signal] void QWebEngineDownloadRequest::isPausedChanged()
Этот сигнал испускается всякий раз, когда isPaused изменяется.
Примечание: Сигнал-уведомление для свойства isPaused.
[slot] void QWebEngineDownloadRequest::pause()
Приостанавливает загрузку.
Не оказывает никакого влияния, если состояние не DownloadInProgress. Не изменяет состояние.
См. также resume() и isPaused().
[slot] void QWebEngineDownloadRequest::resume()
Возобновляет текущую загрузку, если она была приостановлена или прервана.
Не оказывает никакого влияния, если состояние не DownloadInProgress или DownloadInterrupted. Не изменяет состояние.
См. также pause(), isPaused() и state().
[signal] void QWebEngineDownloadRequest::stateChanged(QWebEngineDownloadRequest::DownloadState state)
Этот сигнал испускается всякий раз, когда состояние загрузки state изменяется.
Примечание: Сигнал-уведомление для свойства state.
См. также state() и DownloadState.
QString QWebEngineDownloadRequest::downloadDirectory() const
Возвращает путь к каталогу загрузки.
Примечание: Функция-получатель для свойства downloadDirectory.
См. также setDownloadDirectory().
QString QWebEngineDownloadRequest::downloadFileName() const
Возвращает имя файла, в который будет загружаться файл.
Примечание: Функция-получатель для свойства downloadFileName.
См. также setDownloadFileName().
quint32 QWebEngineDownloadRequest::id() const
Возвращает идентификатор элемента загрузки.
Примечание: Функция-получатель для свойства id.
QWebEngineDownloadRequest::DownloadInterruptReason QWebEngineDownloadRequest::interruptReason() const
Возвращает причину прерывания загрузки.
Примечание: Функция-получатель для свойства interruptReason.
См. также interruptReasonString().
QString QWebEngineDownloadRequest::interruptReasonString() const
Возвращает удобочитаемое описание причины прерывания загрузки.
Примечание: Функция-получатель для свойства interruptReasonString.
См. также interruptReason().
bool QWebEngineDownloadRequest::isSavePageDownload() const
Возвращает true, если это запрос на загрузку для сохранения веб-страницы.
Примечание: Функция-получатель для свойства isSavePageDownload.
См. также savePageFormat() и setSavePageFormat().
QString QWebEngineDownloadRequest::mimeType() const
Возвращает MIME-тип загрузки.
Примечание: Функция-получатель для свойства mimeType.
QWebEnginePage *QWebEngineDownloadRequest::page() const
Возвращает страницу, на которой был запрошен запрос на загрузку. Если загрузка не была вызвана контентом на странице, возвращается nullptr.
qint64 QWebEngineDownloadRequest::receivedBytes() const
Возвращает количество данных в байтах, которые были загружены до сих пор.
-1 означает, что размер неизвестен.
Примечание: Функция-получатель для свойства receivedBytes.
QWebEngineDownloadRequest::SavePageFormat QWebEngineDownloadRequest::savePageFormat() const
Возвращает формат, в котором веб-страница будет сохранена, если это запрос на загрузку веб-страницы.
Примечание: Функция-получатель для свойства savePageFormat.
См. также setSavePageFormat() и isSavePageDownload().
void QWebEngineDownloadRequest::setDownloadDirectory(const QString &directory)
Устанавливает directory в качестве пути к каталогу для загрузки файла.
Путь к каталогу загрузки можно установить только в ответ на сигнал QWebEngineProfile::downloadRequested() перед принятием загрузки. После этого момента эта функция не оказывает никакого влияния на состояние элемента загрузки.
Примечание: Функция-установщик для свойства downloadDirectory.
См. также downloadDirectory().
void QWebEngineDownloadRequest::setDownloadFileName(const QString &fileName)
Устанавливает fileName в качестве имени файла, в который будет загружаться файл.
Имя файла загрузки можно установить только в ответ на сигнал QWebEngineProfile::downloadRequested() перед принятием загрузки. После этого момента эта функция не оказывает никакого влияния на состояние элемента загрузки.
Примечание: Функция-установщик для свойства downloadFileName.
См. также downloadFileName().
void QWebEngineDownloadRequest::setSavePageFormat(QWebEngineDownloadRequest::SavePageFormat format)
Устанавливает format, в котором веб-страница будет сохранена, если это запрос на загрузку веб-страницы.
Примечание: Функция-установщик для свойства savePageFormat.
См. также savePageFormat() и isSavePageDownload().
QWebEngineDownloadRequest::DownloadState QWebEngineDownloadRequest::state() const
Возвращает текущее состояние элемента загрузки.
Примечание: Функция-получатель для свойства state.
См. также DownloadState.
QString QWebEngineDownloadRequest::suggestedFileName() const
Возвращает предложенное имя файла.
Примечание: Функция-получатель для свойства suggestedFileName.
qint64 QWebEngineDownloadRequest::totalBytes() const
Возвращает общее количество данных для загрузки в байтах.
-1 означает, что размер неизвестен.
Примечание: Функция-получатель для свойства totalBytes.
QUrl QWebEngineDownloadRequest::url() const
Возвращает исходный URL загрузки.
Примечание: Функция-получатель для свойства url.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qwebenginedownloadrequest.html