当前位置: 代码迷 >> QT开发 >> 关于qt使用qlabel显示网络图片的有关问题
  详细解决方案

关于qt使用qlabel显示网络图片的有关问题

热度:342   发布时间:2016-04-25 02:55:40.0
关于qt使用qlabel显示网络图片的问题
我从网络上获取一个图片,再保存到本地,再setPixmap(),第一次并不能显示,第二次才能显示到图片
void MainWindow::sendGetCurDayPictureSignal(QString url)
{
    QNetworkAccessManager* get_picture = new QNetworkAccessManager(this);
    QUrl picture_url(url);
    connect(get_picture,SIGNAL(finished(QNetworkReply*)),SLOT(getCurDayPictrueSlot(QNetworkReply*)));
    get_picture->get(QNetworkRequest(picture_url));
}

void MainWindow::getCurNightPictrueSlot(QNetworkReply * reply)
{
    QVariant status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
    QVariant redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
    if(reply->error() == QNetworkReply::NoError)
    {
        QByteArray data_bytes = reply->readAll();
        QPixmap* cur_pictrue =new QPixmap();
        cur_pictrue->loadFromData(data_bytes);
        cur_pictrue->save("cur_night_picture.png");
        delete cur_pictrue;
        picture[1].load("cur_night_picture.png");
    }
    reply->deleteLater();
}


第一次点击获取,没有图片
第二次点击出现
------解决思路----------------------
picture是什么?picture[1]是什么?QLabel在哪里?
如果一开始QLabel设置了一个空的QPixmap,再调用该QPixmap的load,QLabel并不会自动更新,你调用QLabel的update或adjustSize可以导致刷新。