qt学习:HTTP接口+实战 请求网页图片显示

头文件

  • #include <QNetworkAccessManager>
    • 网络管理者
  • #include <QNetworkReply>
    • 请求
  • #include <QNetworkRequest>
    • 响应

步骤

在pro里添加模块

复制代码
QT       += core gui network

在ui界面的.h里加入头文件,并定义一个管理者指针,槽函数

复制代码
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>

private:
    QNetworkAccessManager *manager;

private slots:
    void onReplyDataSlot(QNetworkReply *reply);

在ui界面的构造函数里添加

复制代码
    //1、创建一个网络访问管理者对象
    manager = new QNetworkAccessManager;

    //3、当发送网络请求之后,服务器进行http应答,manager会自动发射finished信号,关联槽函数
    //在槽函数中接收应答的数据
    //void  finished(QNetworkReply *reply) reply就是服务器应答的数据包
    connect(manager,&QNetworkAccessManager::finished,this,&Widget::onReplyDataSlot);

实现点击按钮的点击事件

复制代码
    //2、实例化一个网络请求类的对象,将网络数据包放到该对象中
    QUrl url("https://lmg.jj20.com/up/allimg/4k/s/02/2109242304361221-0-lp.jpg");
    QNetworkRequest request(url);
    //发送网络请求 write
    manager->get(request);

实现槽函数

复制代码
void Widget::onReplyDataSlot(QNetworkReply *reply)
{
    //获取应答的数据,该数据就是图片的源数据
    QByteArray data = reply->readAll();
    //将图片的源数据 转换成 图片数据 并且在界面上显示出来

    QPixmap pic;
    pic.loadFromData(data);
    pic = pic.scaled(ui->label->size());
    ui->label->setPixmap(pic);
}

因为https是安全协议,qt会出错,需要安装ssl

  1. 先确定自己qt是32位还是64位
  2. 下载安装OpenSSL1.1.1的二进制文件
  3. 下载路径http://slproweb.com/products/Win32OpenSSL.html![](https://file.jishuzhan.net/article/1751997295311720449/d50582564a8e938cabf81f0cf60766ee.webp)
  4. 安装过程中记住安装位置,安装完去到安装路径将libcrypto-1_1-x64.dll和libssl-1_1-x64.dll两个文件复制到qt根目录下的 qt/版本号/mingw73_64/bin 里

效果

相关推荐
strongwyy14 分钟前
蓝牙墨水屏上位机学习(2)
学习
九皇叔叔17 分钟前
(3)手摸手-学习 Vue3 之 变量声明【ref 和 reactive】区别
学习
The_cute_cat2 小时前
Ajax和Axios的初步学习
前端·学习·ajax
amazinging3 小时前
北京-4年功能测试2年空窗-报培训班学测开-第四十三天
python·学习
祁思妙想4 小时前
八股学习(五)---MySQL
学习
虾球xz4 小时前
CppCon 2018 学习:THE MOST VALUABLE VALUES
开发语言·c++·学习
丰锋ff5 小时前
计网学习笔记第2章 物理层(灰灰题库)
笔记·学习
Chef_Chen5 小时前
从0开始学习R语言--Day39--Spearman 秩相关
开发语言·学习·r语言
天水幼麟12 小时前
动手学深度学习-学习笔记(总)
笔记·深度学习·学习
天水幼麟14 小时前
动手学深度学习-学习笔记【二】(基础知识)
笔记·深度学习·学习