C++ 从QNetworkAccessManager下载图像
我看到另一个帖子在谈论这个,但是我没有成功地显示我的图像 目前,我正在下载我的图像,如下所示:C++ 从QNetworkAccessManager下载图像,c++,qt,rapidjson,C++,Qt,Rapidjson,我看到另一个帖子在谈论这个,但是我没有成功地显示我的图像 目前,我正在下载我的图像,如下所示: void MyClass::imgHandle() { QNetworkAccessManager *nam = new QNetworkAccessManager(this); QUrl url(_code.c_str()); QNetworkReply* reply = nam->get(QNetworkRequest(url)); QEventLoop eventLoop;
void MyClass::imgHandle() {
QNetworkAccessManager *nam = new QNetworkAccessManager(this);
QUrl url(_code.c_str());
QNetworkReply* reply = nam->get(QNetworkRequest(url));
QEventLoop eventLoop;
connect(reply,SIGNAL(finished()),&eventLoop,SLOT(quit()));
eventLoop.exec();
if (reply->error() == QNetworkReply::NoError)
{
QImageReader imageReader(reply);
imageReader.setAutoDetectImageFormat (false);
_img = imageReader.read();
}
}
_代码是从Json解析获得的代码构建的,url如下所示:http://l.yimg.com/a/i/us/we/52/33.gif
_img是我班上的一名老师 在我的另一节课上,我做了这样一件事:
int OtherClass::displayWeather()
{
MyClass mC = new MyClass;
mC->exec() // Where I get the code from the Json
QLabel *imgWeather = new QLabel(this);
imgWeather->setPixmap(QPixmap::fromImage(mC->getImg()));
// getImg() return a QImage.
//The QImage created in MyClass.
imgWeather->setGeometry(1700, 0, 120, 120);
}
最后。。没有显示任何内容 您应该检查
QImageReader::read
结果:
QImageReader imageReader(reply);
imageReader.setAutoDetectImageFormat(false);
QImage _img = imageReader.read();
if (_img.isNull())
{
qDebug() << imageReader.errorString();
}
QImageReader图像阅读器(回复);
imageReader.setAutoDetectImageFormat(false);
QImage _img=imageReader.read();
如果(_img.isNull())
{
qDebug()非常感谢,它工作得非常好!我复制了。粘贴了代码,但没有检查它的功能。。