26 июля 2019 г. 3:16

Webview не загружает файлы

Webview

Добрый день.
Хочу скачать картинку, нажимаю скачать, но он просто открывает картинку как сайт. Как скачивать картинки?

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
5

Файл можно скачать с помощью QNetworkAccessManager, но как определить сслыку для скачивания? Сем такая ссылка отличается от обычной?

Добрый день, текущая страница у QWebView может высылать запросы на скачивание

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->webView->page()->setForwardUnsupportedContent(true);
    connect(ui->webView->page(),SIGNAL(downloadRequested(QNetworkRequest)),this,SLOT(download(QNetworkRequest)));
    connect(ui->webView->page(),SIGNAL(unsupportedContent(QNetworkReply*)),this,SLOT(unsupportedContent(QNetworkReply*)));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::download(const QNetworkRequest &request){
    // request.url() - это то, откуда вам нужно скачать файл или изображение
    qDebug()<<"Download Requested: "<<request.url();
}

void MainWindow::unsupportedContent(QNetworkReply * reply){

    qDebug()<<"Unsupported Content: "<<reply->url();

}

Дальше уже сможете использовать QNetworkAccessManager, статьи есть на сайте по скачиванию файлов, в то числе и больших.

Спасибо. А как делать, если WebView используется в QML?

Смотрю в хедер вебВью, но не вижу сигнала downloadRequested.
Скажите пожалуйста, где он?

qwebview_p.h qwebview_p.h

Если его там нет, значит может быть в заголовочных файлах базовых классов класса QWebView. Если вы не видите этот сигнал в конкретном классе, это не значит что его там нет совсем.

Может быть и где-то здесь

#include "qabstractwebview_p.h"
#include "qwebviewinterface_p.h"
#include "qnativeviewcontroller_p.h"

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
D
16 августа 2019 г. 11:58
Damir

C++ - Тест 003. Условия и циклы

  • Результат:92баллов,
  • Очки рейтинга8
D
16 августа 2019 г. 11:46
Damir

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

  • Результат:75баллов,
  • Очки рейтинга2
u
14 августа 2019 г. 13:55
unrealproro

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

  • Результат:83баллов,
  • Очки рейтинга4
Последние комментарии
19 августа 2019 г. 6:41
Андрей Янкович

это проблема дистрибутива, попробуйте установить через пакетный менеджер snap Суть проблемы: libQt5Core которая лежит в дистрибутиве требует версию glibc >= 2.25 у вас видимо …
b
18 августа 2019 г. 5:09
bbb116

cqtdeployer /home/aleks/CQtDeployer/bin/cqtdeployer: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /home/aleks/CQtDeployer/lib/libQt5Core.so.5) linux mint …
D
17 августа 2019 г. 8:04
Damir

github ChekableTView Правой групповая смена значения при перетаскивании левой как обычно.
Сейчас обсуждают на форуме
20 августа 2019 г. 12:37
Александр Панюшкин

Добрый день. Я бы хотел добавить, что в вашем коде можно было бы использовать слово auto и цикл for с перебором. Так код получился бы компактнее: auto map = new QMap<Qstring, QString&…
20 августа 2019 г. 12:17
Евгений Легоцкой

Добрый день. Вы делаете некорректную попытку создать исключение. Исключения генерируются кодом, то есть любое исключение, которое вы перехватываете, всегда генерируется оператором th…
20 августа 2019 г. 8:04
IscanderChe

Ещё раз здравствуйте. Собираю Qt-проект с помощью CMake. Применяю к полученному exe-файлу windeployqt. В результате подцепляются почему-то dll-ки, оканчивающиеся в наименованиях на "d": Qt…
20 августа 2019 г. 7:46
IscanderChe

Да, с таргетом тоже работает. Спасибо!
Ищу работу?
14,000.00 руб. - 40,000.00 руб.
Разработчик Qt
Annino, Moscow Oblast, Russia
5,000.00 руб. - 15,000.00 руб.
Дизайнер
Moskovskiy, Moscow, Russia
25,000.00 руб. - 30,000.00 руб.
Разработчик Qt/C++
Barnaul, Altai Krai, Russia

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы

EVILEG
О нас
Услуги
© EVILEG 2015-2019
Рекомендует хостинг TIMEWEB