никак не могу найти, как закачать картинку средствами Qt. Всюду примеры закачки текстовых файлов и .html. но нигде нету и даже в документации как скачивать чертову картинку в формате .jpg .gif. Кто нить сталкивался с таким? подскажите пожалуйста в какую сторону копать заранее благодарен)
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(); вот что пришло на ум)) подскажите плиз, что тут не так?
почему то такая запись вообще вызывает ошибку программы и винда ее сразу закрывает. главное косяк где то в этой строке http->get("http://www.какой нить адресс.gif", &file); если написать так http->get("http://www.какой нить адресс.gif"); то зависания не происходит. Хотя я вообще не уверен что делаю тут хоть что то правельно...
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(); вот и так попробывал, один хрен прога вылетает с предложением отправить отчет в майкрософт)))
проблема решилась таким способом))) 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(); }
можно еще и вот так)) 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 ); } }