© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
25 мая 2018 г. 6:08

QtQt/C++ Урок 080. Скачивание больших по размеру файлов с помощью QNetworkAccessManager

QNetworkRequest, Qt, QNetworkAccessManager, QNetworkReply

После возникновения вопроса на форуме о скачивании больших файлов с помощью библиотеки Qt, я поднял некоторые свои проекты и подготовил более подробный мануал с использованием подобного функционала. Тем более, что возникшая проблема со скачиванием файлов была связана с редиректами. По умолчанию QNetworkAccessManager не переходит по редиректам для скачивания файлов и получения страниц, поэтому в запросе нужно установить соответствующий атрибут, тогда всё заработает, но давайте рассмотрим всё подробнее.

Приложение будет обладать следующим функционалом.

  • QLineEdit для ввода целевого URL для скачивания
  • QLineEdit для ввода целевого каталога для скачивания в режиме readOnly. Заполнять его будем с помощью QFileDialog.
  • QProgressBar, который будет показывать прогресс загрузки
  • Кнопку для отмены загрузки

Выглядеть наш Downloader будет так

4 мая 2017 г. 15:33

QtQt/C++ - Урок 065. Соответствие ошибок HTTP ошибкам ответа сервера в QNetworkAccessManager

QNetworkAccessManager, QNetworkReply, QNetworkError

В одном из уроков была представлена работа с QNetworkAccessManager для получения содержимого страницы с сайта по протоколу http. Там была сделана проверка на наличие ошибок, но не были даны пояснения, какие могут быть ошибки. Для этого класс QNetworkReply предоставляет enum NetworkError , в котором перечислены коды возможных ошибок.

В случае успешного выполнения возвращается NoError , равный 0 .

В противном случае возвращается код ошибки из кодов, представленных ниже:

25 июня 2018 г. 11:55
lebendig

C++ - Тест 006. Перечисления

  • Результат 100 баллов
  • Очки рейтинга 10
25 июня 2018 г. 11:24
lebendig

C++ - Тест 005. Структуры и Классы

  • Результат 100 баллов
  • Очки рейтинга 10
25 июня 2018 г. 8:48
lebendig

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат 100 баллов
  • Очки рейтинга 10
Последние комментарии
25 июня 2018 г. 9:34
EVILEG

Как написать игру на Qt - Урок 4. Враг - смысл в выживании

Там неправильный подсчёт был по направлению и полный бардак был с поведением, эти 45 градусов исправляли ситуацию. Точную причину уже совсем не помню. А вообще все эти расчёты довольно...
25 июня 2018 г. 9:13
MarkSD

Как написать игру на Qt - Урок 4. Враг - смысл в выживании

Здравствуйте, Подскажите, пжлст, как работает этот код : QLineF lineToTarget(QPointF(0, 0), mapFromItem(target, 0, 0));  // Проводим линию от паука к мухе qreal angl...
25 июня 2018 г. 7:51
EVILEG

PyQt5 - Урок 003. QSystemTrayIcon - Как свернуть приложение в трей

Если не ошибаюсь, можно просто удалить вот эту строку central_widget.setLayout(grid_layout) Там указатель на парента передаётся в само размещение, что автоматически заменяет в размещен...
Сейчас обсуждают на форуме
25 июня 2018 г. 17:38
IscanderChe

Иконка исполняемого файла

Спасибо!
25 июня 2018 г. 13:12
Arrow

QComboBox и База данных

И если можно еще один вопрос. Таблицы во вложении. Если писать: mainModel = new QSqlRelationalTableModel(this);mainModel-&g...;
25 июня 2018 г. 7:49
EVILEG

На чём сделан этот сайт?

Добрый день! На сервере сайта установлена Ubuntu 16.04. В качестве сервера используется VDS. Хостинг-провайдер Timeweb . Сайт написан на Django/Python, для...
19 июня 2018 г. 7:56
EVILEG

как редактировать порядок обхода этементов по нажатию TAB в Qt5 qml

Что-то наподобие такого TextField { Keys.onReturnPressed: nextItemInFocusChain().forceActiveFocus()}

Рекомендуемые страницы