QT–HTTP图片下载器

1.http使用前提
QT       += core gui network    //必须加上network
2.必须头文件
#include <QNetworkAccessManager>       //三个http必须头文件
#include <QNetworkReply>
#include <QNetworkRequest>
3.widget.h文件
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QPainter>
#include <QPoint>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = nullptr);~Widget();QPixmap pixmap;QPainter *painter;     //绘制显示图片QNetworkAccessManager *manager;QNetworkReply  *reply;void paintEvent(QPaintEvent *event);   //绘图void Init();
private slots:void doProcessReadyRead();void on_pushButton_clicked();void doProceesFinished();
private:Ui::Widget *ui;
};#endif // WIDGET_H
4.widget.cpp文件
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QFile>
#include <QPixmap>
Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);Init();}Widget::~Widget()
{delete ui;
}void Widget::Init()
{manager = new QNetworkAccessManager(this);
}void Widget::doProcessReadyRead()                 //读取储存图片
{qDebug()<< "123456";QByteArray str = reply->readAll();qDebug() << str;ui->textEdit->append(str);qDebug() << pixmap.loadFromData(str);pixmap.save(QString("E:/test.jpg"), "jpg");QString path = "E:/1.jpg";                                //打开/创建文件QFile file(path);if (!file.open(QIODevice::WriteOnly|QIODevice::Append)){qDebug() <<"打开失败";return;}else{file.write(str);}
}void Widget::paintEvent(QPaintEvent *event)              //绘制图片
{painter = new QPainter(this);QRectF target(0,0, this->width(), this->width());QRectF source(0,0, this->width(), this->width());QPixmap pixmap_background("E:/1.jpg");painter->drawPixmap(target, pixmap_background, source);update();
}void Widget::on_pushButton_clicked()
{QNetworkRequest requst;requst.setRawHeader(QByteArray("User-Agent"), QByteArray("Sun, 06 Nov 1994 08:49:37 GMT"));   //设置头QString url_str = ui->lineEdit->text();QUrl url;url.setUrl(url_str);requst.setUrl(url);reply = manager->get(requst);      //发送请求connect(reply, &QIODevice::readyRead, this, &Widget::doProcessReadyRead);            //收到可读信号connect(reply, QOverload<QNetworkReply::NetworkError>::of(&QNetworkReply::error),    //收到异常信号[=](QNetworkReply::NetworkError code){switch((int)code){case QNetworkReply::ConnectionRefusedError:qDebug() << "远程服务器拒绝连接(服务器不接受请求)";break;case QNetworkReply::HostNotFoundError:qDebug() << "找不到远程主机名(无效的主机名)";break;case QNetworkReply::TimeoutError:qDebug() << "与远程服务器的连接超时";break;default:break;}});connect(reply, &QNetworkReply::finished,this,&Widget::doProceesFinished);}void Widget::doProceesFinished()
{qDebug() <<"结束";
}
5.widget.ui文件

QT--HTTP图片下载器相关推荐

  1. 虹影图片下载器(Preview)

    虹影图片下载器,支持从image.google.com.image.baidu.com.image.yahoo.com.image.tom.com自动下载搜索到的图片 download 转载于:htt ...

  2. 图片下载器爬虫 ItemLoader

    思路 http://www.meizitu.com/a/more_1.html 图片下载器爬虫 1.使用到的技术:scrapy ,requests(下载图片),ItemLoader 2.项目的创建:s ...

  3. java爬虫写一个百度图片下载器

    文章目录 img_download 1.0 看看效果吧 2.0 了解一下 "图片下载器软件" 目录结构 3.0 如何使用? 4.0 源码剖析 5.0 项目地址 6.0 写在最后的话 ...

  4. linux用命令下载图片,巧用linux命令做图片下载器

    在平时上网的时候,发现有些图片不错,想保存到本地,一个一个的保存确实够费劲的,如果把整个网页都保存了,有些又是自己不需要的,就算下载下来了,还得从上百个网页元素中去筛选,哪些是css文件,哪些是js文 ...

  5. Android实现网页图片下载器

    Android实现网页图片下载器 网页图片下载器是配合神马笔记图像画廊功能使用的一个工具. 实现了抓取并下载网页页面图片功能. 实现过程: 使用WebView加载网页 获取网页的原始HTML内容 使用 ...

  6. Extreme Picture Finder(网络图片下载器)官方中文版V3.53.3 | 下载网页图片的软件 | 图片助手批量图片下载器

    Extreme Picture Finder 是一款功能强大的集网络图片下载器软件和网页视频下载软件于一体的综合性互联网素材采集工具,能帮助广大用户自动下载并保存几乎所有互联网上面的图像.视频.音乐以 ...

  7. 用python爬虫制作图片下载器(超有趣!)

    这几天小菌给大家分享的大部分都是关于大数据,linux方面的"干货".有粉丝私聊小菌,希望能分享一些有趣的爬虫小程序.O(∩_∩)O哈哈,是时候露一手了.今天给大家分享的是一个适合 ...

  8. 百度图片下载器2.0

    前段时间写了一个百度图片下载器,结果发现有很多人需要使用.说实话之前写的那一款百度图片下载器比较LOW,今天刚好有时间就做了一下升级. 完整源代码的获取方式放在文末了,有需要的直接下载即可. 更新了两 ...

  9. python图片下载器(百度图片)

    之前觉得爬虫很好玩,去网页上面抓取数据感觉很神奇.初次接触在导入包就出现了问题,requests没有导入到程序中,在cmd命令里面输入pip install requests,下载到一半的时候就报错了 ...

最新文章

  1. 合肥云暨移动应用孵化基地全面运营,服务企业转型升级
  2. OpenCASCADE:Modeling Algorithms模块标准拓扑对象
  3. python 3d渲染_python老司机带你玩玩炫酷的3D渲染,酷毙了!
  4. android 选择银行类型,『自定义View实战』—— 银行种类选择器
  5. [文摘]Java正则表达式详解
  6. 基于灰色模型GM的管道腐蚀预测 - 附代码
  7. 小程序布局中class='container'的bug
  8. mysql lock table阻塞读_MySQL的lock tables和unlock tables的用法【数据库锁表】
  9. HTML5+CSS期末大作业:明星主页介绍(7页) 简约个人网页制作 大学生个人网页设计模板 学生个人博客网页成品 简单个人网站作品下载 静态HTML CSS个人网页作业源代码
  10. 大话西游2玩家最多的服务器,大话西游2最火爆的服务器凌烟阁,玩家一次预约成功...
  11. 计算机毕业设计java+ssm生鲜超市进销存管理系统(源码+系统+mysql数据库+Lw文档)
  12. macbook更新系统服务器,为Mac新系统做准备 苹果更新OSX Server
  13. 第二章 Pyton语言基础、Ipython及Jupyter notebook(?功能,%run命令,魔法函数)
  14. 简单三招,设计复杂ERP报表
  15. 友善之臂(FriendlyArm)NanoPi无线网络设置
  16. 利息计算器V3.0感悟
  17. ITK-图像主轴分析
  18. Pytorch训练速度更快的十七种方法
  19. magic-把项目中的石头变成垫脚石
  20. PS之调色技巧,正面负冲技巧

热门文章

  1. 数据库管理系统实验答案
  2. Hyperledger Fabric1.4学习笔记(包括官方文档翻译)
  3. markdown 斜体、加粗、公式起止符快捷键
  4. Python+NetworkX画图的nx.draw_networkx(函数详解)
  5. 快速实践大规模轻量级图片分类模型:飞桨识图 PP-ShiTu
  6. kubernetes1.5.2版本 yum install 方式安装部署 认证授权机制 安全模式 完整版
  7. 如何批量查询谷歌PR权重是多少?谷歌PR权重怎么批量查询
  8. 【Scala-spark.mlib】分布式矩阵——分布式计算的基石与利器
  9. 不一样的技术人工作、面试指南
  10. Linux设置防火墙