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 里

效果

相关推荐
weixin_421585017 分钟前
对比学习前置任务,从部分输入数据本身生成伪标签
学习
yuhouxiyang17 分钟前
学习海康VisionMaster之异常检测
学习
陈天伟教授20 分钟前
人工智能应用- 预测化学反应:05. AI 预测化学反应类型
人工智能·深度学习·学习·算法·机器学习
LYS_061823 分钟前
C++学习(7)(输入输出)
c++·学习·算法
万能菜道人1 小时前
学习Lora训练的个人记录
人工智能·学习
2501_918126912 小时前
stm32上,接线柱下有3v3,tms,gnd,tck,rst,这几个字,分别怎么对应接红,绿,黑,白,线
stm32·单片机·嵌入式硬件·学习·个人开发
Smoothcloud润云2 小时前
Google DeepMind 学习系列笔记(3):Design And Train Neural Networks
数据库·人工智能·笔记·深度学习·学习·数据分析·googlecloud
Nan_Shu_6142 小时前
学习: Blender 动画篇
学习·blender
【数据删除】3482 小时前
计算机复试学习笔记 Day26【补】
笔记·学习
量子力学和生命科学2 小时前
固态变压器SST相关仿真初探
学习