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 里

效果

相关推荐
@小博的博客1 小时前
C++初阶学习第十弹——深入讲解vector的迭代器失效
数据结构·c++·学习
南宫生2 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
懒惰才能让科技进步2 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
love_and_hope3 小时前
Pytorch学习--神经网络--搭建小实战(手撕CIFAR 10 model structure)和 Sequential 的使用
人工智能·pytorch·python·深度学习·学习
Chef_Chen3 小时前
从0开始学习机器学习--Day14--如何优化神经网络的代价函数
神经网络·学习·机器学习
芊寻(嵌入式)3 小时前
C转C++学习笔记--基础知识摘录总结
开发语言·c++·笔记·学习
hong1616884 小时前
跨模态对齐与跨领域学习
学习
阿伟来咯~4 小时前
记录学习react的一些内容
javascript·学习·react.js
Suckerbin5 小时前
Hms?: 1渗透测试
学习·安全·网络安全
水豚AI课代表5 小时前
分析报告、调研报告、工作方案等的提示词
大数据·人工智能·学习·chatgpt·aigc