HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Как закачивать картинку средствами Qt
  #1  
Старый 21.02.2010, 21:55
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
С нами: 8792626

Репутация: 5
По умолчанию Как закачивать картинку средствами Qt

никак не могу найти, как закачать картинку средствами Qt. Всюду примеры закачки текстовых файлов и .html.
но нигде нету и даже в документации как скачивать чертову картинку в формате .jpg .gif.
Кто нить сталкивался с таким? подскажите пожалуйста в какую сторону копать
заранее благодарен)
 
Ответить с цитированием

  #2  
Старый 21.02.2010, 22:05
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
С нами: 8792626

Репутация: 5
По умолчанию

QFile file;
file.setFileName("image.gif");
if(!file.open(QIODevice::WriteOnly))
{
QMessageBox::warning(this, tr("HTTP GET"),
tr("Can't write file")
.arg(file.fileName())
.arg(file.errorString()));
return;
}


QHttp *http = new QHttp;


http->get("http://www.какой нить адресс.gif", &file);
file.close();

вот что пришло на ум)) подскажите плиз, что тут не так?
 
Ответить с цитированием

  #3  
Старый 21.02.2010, 22:52
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
С нами: 8792626

Репутация: 5
По умолчанию

почему то такая запись вообще вызывает ошибку программы и винда ее сразу закрывает.
главное косяк где то в этой строке http->get("http://www.какой нить адресс.gif", &file);
если написать так http->get("http://www.какой нить адресс.gif"); то зависания не происходит.
Хотя я вообще не уверен что делаю тут хоть что то правельно...
 
Ответить с цитированием

  #4  
Старый 21.02.2010, 23:15
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
С нами: 8792626

Репутация: 5
По умолчанию

QFile file;
file.setFileName("kartinka.jpg");
if(!file.open(QIODevice::WriteOnly))
{
QMessageBox::warning(this, tr("HTTP GET"),
tr("Can't write file")
.arg(file.fileName())
.arg(file.errorString()));
return;
}

QHttp *http = new QHttp;
http->setHost("img68.imageshack.us");

http->get("/img68/6868/decayinghopesbyblackribca8.jpg", &file);

file.close();
http->closeConnection();


вот и так попробывал, один хрен прога вылетает с предложением отправить отчет в майкрософт)))
 
Ответить с цитированием

  #5  
Старый 21.02.2010, 23:34
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
С нами: 8792626

Репутация: 5
По умолчанию

проблема решилась таким способом)))

void loader_http()
{
QFile file( "save.gif" );
if( !file.open( QIODevice::WriteOnly ) )
{
qDebug() << "Error create file";
return;
}

QHttp http;
QEventLoop loop;
QObject::connect( &http, SIGNAL( done( bool ) ), &loop, SLOT( quit() ) );

http.setHost( "www.prog.org.ru" );
http.get( "/Themes/default/images/smflogo.gif", &file );
loop.exec();

qDebug() << http.state() << http.error() << http.bytesAvailable();
}
 
Ответить с цитированием

  #6  
Старый 22.02.2010, 01:12
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
С нами: 8792626

Репутация: 5
По умолчанию

можно еще и вот так))

void loader_nam()
{
QEventLoop loop;
QNetworkAccessManager manager;
QNetworkReply *reply = manager.get( QNetworkRequest( QUrl( "http://prog.org.ru/Themes/default/images/smflogo.gif" ) ) );
QObject::connect( reply, SIGNAL( finished() ), &loop, SLOT( quit() ) );
loop.exec();

qDebug() << reply->error() << reply->bytesAvailable();
QByteArray buf = reply->readAll();
QFile file( "save.gif" );
if( file.open( QIODevice::WriteOnly ) )
{
file.write( buf );
}
}
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Взлом домофона Метаком andreipup Болталка 11 14.08.2009 16:06



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.