2023版本QT学习记录 -8- HTTP获取图片并且显示(大数据)

在这里插入图片描述 ———————HTTP获取图片———————

效果演示

2023版本QT学习记录 -8- HTTP获取图片并且显示(大数据)_第1张图片

HTTP请求图片思维导图

2023版本QT学习记录 -8- HTTP获取图片并且显示(大数据)_第2张图片

添加组件

在这里插入图片描述

添加头文件

2023版本QT学习记录 -8- HTTP获取图片并且显示(大数据)_第3张图片

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "qnetworkaccessmanager.h"
#include "qnetworkrequest.h"
#include "qnetworkreply.h"
#include "QDebug"
#include "qfile.h"

创建对象

2023版本QT学习记录 -8- HTTP获取图片并且显示(大数据)_第4张图片

QNetworkAccessManager *test;

QNetworkReply *reply;

QFile * file;

关联信号和槽

2023版本QT学习记录 -8- HTTP获取图片并且显示(大数据)_第5张图片

    //关联可读信号
    connect(reply, &QIODevice::readyRead, this, &MainWindow::slotReadyRead);

    //关联下载信号
    connect(reply, &QNetworkReply::downloadProgress, this, &MainWindow::downRepose);

发起请求

在这里插入图片描述

    //设置链接
    QNetworkRequest request;
    request.setUrl(QUrl("http://file.alapi.cn/image/comic/120112-15286032729447.jpg"));

    //发起请求
    reply = test->get(request);

通过槽处理返回的数据

2023版本QT学习记录 -8- HTTP获取图片并且显示(大数据)_第6张图片

void MainWindow::slotReadyRead()
{
   file->write( reply->readAll() );
}

下载完成关闭文件&&显示图片

2023版本QT学习记录 -8- HTTP获取图片并且显示(大数据)_第7张图片

void MainWindow::downRepose( qint64 bytesReceived, qint64 bytesTotal )
{

    qDebug() <<"资源总大小" <<  bytesTotal << "当前大小" << bytesReceived ;

    if( bytesTotal == bytesReceived )
    {
        file -> close();

        QPixmap pic("rlxy.jpg");

        pic = pic.scaled( ui->label->size() );

        ui->label->setPixmap(pic );


    }

}

在这里插入图片描述 ———————代码获取查看下方———————

你可能感兴趣的:(嵌入式QT,qt,学习,http)