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 里

效果

相关推荐
xian_wwq1 小时前
【学习笔记】攻击链贯穿端边云!边缘网络访问三大核心风险预警
笔记·学习·安全·边缘计算
深蓝海拓4 小时前
PySide6从0开始学习的笔记(一) 学前班
笔记·学习
EveryPossible5 小时前
优先级调整练习1
大数据·学习
逐辰十七5 小时前
FreeRTOS 中断管理 (Chapter 17) 核心学习大纲
学习
智行众维6 小时前
【用户心得】SCANeR™Studio学习笔记(六):人因工程Pack——一站式搞定驾驶模拟的多模态数据同步
笔记·学习·自动驾驶·汽车·仿真·scaner·人因工程
kissgoodbye20126 小时前
cadence学习之基础知识
网络·学习
xian_wwq6 小时前
【学习笔记】基于人工智能的火电机组全局性能一体化优化研究
人工智能·笔记·学习·火电
阿蒙Amon6 小时前
JavaScript学习笔记:6.表达式和运算符
javascript·笔记·学习
potato_15547 小时前
Windows11系统安装Isaac Sim和Isaac Lab记录
人工智能·学习·isaac sim·isaac lab
我命由我123457 小时前
python-dotenv - python-dotenv 快速上手
服务器·开发语言·数据库·后端·python·学习·学习方法