QT---HTTP图片信息获取

http图片信息获取通过QPixmap提供的成员函数loadFromData从请求返回的数据中构造QPixmap对象。

代码如下:
httppicture.h

#ifndef HTTPPICTURE_H
#define HTTPPICTURE_H

#include <QMainWindow>
#include <QtNetwork>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>

QT_BEGIN_NAMESPACE
namespace Ui {
    
     class HttpPicture; }
QT_END_NAMESPACE

class HttpPicture : public QMainWindow
{
    
    
    Q_OBJECT

public:
    HttpPicture(QWidget *parent = nullptr);
    ~HttpPicture();

private slots:
    void on_pushButton_clicked();

    void readdata_slot(QNetworkReply *reply);

private:
    Ui::HttpPicture *ui;

    QNetworkAccessManager *manager;             //Http管理对象
};
#endif // HTTPPICTURE_H

httppicture.c

#include "httppicture.h"
#include "ui_httppicture.h"

HttpPicture::HttpPicture(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::HttpPicture)
{
    
    
    ui->setupUi(this);
    manager = new QNetworkAccessManager(this);

    //连接请求完成和读取数据的槽
    QObject::connect(manager,&QNetworkAccessManager::finished,this,&HttpPicture::readdata_slot);
}

HttpPicture::~HttpPicture()
{
    
    
    delete ui;
}


void HttpPicture::on_pushButton_clicked()
{
    
    
    //获取url
    QUrl url(ui->lineEdit->text());

    //创建http请求
    QNetworkRequest request(url);

    //发送http请求 ----- GET
    manager->get(request);
}

//获取请求返回的数据
void HttpPicture::readdata_slot(QNetworkReply *reply)
{
    
    
    QByteArray arr = reply->readAll();

    //把图片数据放入QPixmap对象
    QPixmap map;

    //从指定位置导入数据到QPixmap
    map.loadFromData(arr);

    //显示图片
    map = map.scaled(ui->label->size());
    ui->label->setPixmap(map);
}

运行结果:
在这里插入图片描述

编译环境windows10,+ QT5.12.0
在这里插入图片描述
完整代码:https://download.csdn.net/download/weixin_43793181/13115721




编译时如果出现错误:qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
1.首先确定你选择打开工程的编译器是64位还是32位,确定方法如下(构建套件一栏):
在这里插入图片描述
2.去QtCreator的安装目录,搜索ssleay32.dll和libeay32.dll,找到mingw730_64路径下的文件
在这里插入图片描述

在这里插入图片描述

3.然后把它们放到你生成的可执行文件目录,再次运行,该错误消失。

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/109709890