Я хочу скачать 1 изображение и сохранить его.Вот что у меня есть:
QCoreApplication a(argc, argv);
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkReply *img = manager->get(QNetworkRequest(QUrl("http://placekitten.com/200/300")));
QImage* img2 = new QImage();
img2->save(img->readAll(), "omg2.png");
Но идентификатор не работает, пожалуйста, помогите!
РЕДАКТИРОВАТЬ: Это также не работает, я получаю "упс" в консоли:
QNetworkAccessManager *manager = new QNetworkAccessManager();
//connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(replyFinished(QNetworkReply*)));
QNetworkReply *img = manager->get(QNetworkRequest(QUrl("http://placekitten.com/200/300")));
QImage* img2 = new QImage();
img2->loadFromData(img->readAll());
if(img2->isNull())
std::cout << "oops";
img2->save("omg2.png");
РЕДАКТИРОВАТЬ: НЕТ, я получаю странную ошибку с vtable
, после qmake
ошибка все еще существует:
#include <QtCore/QCoreApplication>
#include <QNetworkAccessManager>
#include <QtNetwork>
#include <QImage>
#include <QPixmap>
#include <iostream>
class omg : public QObject{
Q_OBJECT
public:
void start(){
QNetworkAccessManager *manager = new QNetworkAccessManager();
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://placekitten.com/200/300")));
}
public slots:
void replyFinished(QNetworkReply* reply)
{
//Check for errors first
QImage* img2 = new QImage();
img2->loadFromData(reply->readAll());
if(img2->isNull())
std::cout << "oops";
img2->save("omg2.png");
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
omg *o = new omg();
o->start();
return a.exec();
}