Russian Qt Forum
Ноябрь 25, 2024, 19:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Загрузка картинок по url  (Прочитано 7589 раз)
Bepec
Гость
« Ответ #15 : Октябрь 10, 2014, 13:28 »

Не повиснет.

Это евент луп, по умолчанию все пользовательские события проходят. Так что всё нормально с гуи. Кнопки нажимаются, картинки перерисовываются. Другой вопрос что действия будут совершаться после обработки евент лупа Улыбающийся

Хотя с ним довольно странная ситуация, вроде поток один, а пара-тройка евент лупов параллельно работать может Улыбающийся
« Последнее редактирование: Октябрь 10, 2014, 13:30 от Bepec » Записан
GamBitiK
Гость
« Ответ #16 : Октябрь 11, 2014, 19:15 »

что он вообще не работает
main.cpp
#include <QCoreApplication>
#include<picture.h>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
  Picture pa;
  pa.getFile();


}


picture.cpp
#include "picture.h"

Picture::Picture(QObject *parent) :
    QObject(parent)
{
}

QPair<QString,QByteArray> Picture::getFile()
{
    QNetworkAccessManager *manager_= new QNetworkAccessManager(this);
    QPair<QString,QByteArray>  pair;
        QUrl pageUrl_(QString("http://im1-tub-ru.yandex.net/i?id=d47fcb314678c246b91d961ec72fb78e-132-144&n=21"));
        QEventLoop loop;
        QNetworkReply * reply_ = manager_->get(QNetworkRequest(QUrl(pageUrl_)));
        connect(reply_, SIGNAL(finished()), &loop, SLOT(quit()));
        loop.exec();
        QString stringHeader(reply_->rawHeader(QString("Content-Disposition").toLatin1()));
            stringHeader.replace("attachment; filename=","");
            stringHeader = stringHeader.simplified();
            stringHeader.replace(":","-");
            stringHeader.replace("/","-");
            stringHeader.replace("\\","-");

            pair.first = stringHeader;
            QByteArray tempContent = reply_->readAll();
            pair.second = tempContent;

            QFile file(pair.first);
            if (!file.open(QIODevice::WriteOnly))
            {
             
                qDebug()<<"bad";
            }
            file.write(pair.second);
            file.close();



           return pair;
}
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.082 секунд. Запросов: 21.