精华内容
下载资源
问答
  • QT加载网络图片

    千次阅读 2016-01-30 14:15:21
    1.网络图片这里指的是,服务器上面保存的图片,给你一个链接,你可以在浏览器里面打开的图片。 2.网络图片的显示跟网络音频,视频不太一样,要比它们麻烦。 因为QT 的QMediaPlayer 类中,有设置URL地址的接口...

    1.网络图片这里指的是,服务器上面保存的图片,给你一个链接,你可以在浏览器里面打开的图片。


    2.网络图片的显示跟网络音频,视频不太一样,要比它们麻烦。

    因为QT 的QMediaPlayer 类中,有设置URL地址的接口,而显示图片就没有这种接口。

    如QMediaPlayer 的 m_qtaudioPlayer->setMedia(QUrl::fromLocalFile(m_audioChangedPath)); 它是可以直接调用url的。


    3.如何显示网络链接的图片?

    QNetworkAccessManager manager;

    manager->get(QNetworkRequest(url));    // 这里的url一定要带上http://头的, 跟在浏览器里输入其它链接不太一样,浏览器里面会自动转的,这里需要手动加上。

    connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(slotReplyPixmapLoad(QNetworkReply*)));

    void DoWorkDialog::slotReplyPixmapLoad(QNetworkReply* reply)
    {
    QPixmap pixmap;
    pixmap.loadFromData(reply->readAll());
    m_ui->countPictureLabel->setPixmap(pixmap);
    }


    展开全文
  • Qt 之显示网络图片

    万次阅读 热门讨论 2016-03-01 16:07:03
    简述Qt中包含了网络模块-network,我们可以很容易的进行各种网络编程和数据传输,关于...下面我们先看一个简单地示例:Qt显示一个网络图片。简述 效果 源码 处理方式效果源码创建按钮及显示图像的标签,连接信号槽。

    简述

    Qt中包含了网络模块-network,我们可以很容易的进行各种网络编程和数据传输,关于network的类很多,其中包含:支持DNS、HTTP、TCP/UDP等众多高级类,可以参考助手。

    下面我们先看一个简单地示例:Qt显示一个网络图片。

    | 版权声明:一去、二三里,未经博主允许不得转载。

    效果

    这里写图片描述

    源码

    创建按钮及显示图像的标签,连接信号槽。

    m_pButton = new QPushButton(this);
    m_pButton->setText(QStringLiteral("开始下载"));
    
    m_pLabel = new QLabel(this);
    m_pLabel->setFixedSize(140, 140);
    m_pLabel->setScaledContents(true);
    
    connect(m_pButton, SIGNAL(clicked(bool)), this, SLOT(startDownload()));

    请求及结果处理,请求完成以后,我们可以去E盘查看下载后的图片。

    // 点击按钮,开始请求
    void MainWindow::startDownload()
    {
        m_pButton->setEnabled(false);
    
        QNetworkRequest request;
        request.setUrl(QUrl("http://avatar.csdn.net/6/9/A/1_u011012932.jpg"));
        connect(&m_networkManager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply *)));
        m_networkManager.get(request);
    }
    
    // 响应结束,进行结果处理-图片显示或错误处理
    void MainWindow::replyFinished(QNetworkReply *reply)
    {
        m_pButton->setEnabled(true);
    
        // 获取响应状态码,200表示正常
        // QVariant nCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
    
        if (reply->error() == QNetworkReply::NoError)
        {
            QByteArray bytes = reply->readAll();
            QPixmap pixmap;
            pixmap.loadFromData(bytes);
            m_pLabel->setPixmap(pixmap);
    
            // 缓存到本地
            QFile file("E:/head.jpg");
            if (file.open(QIODevice::Append))
                file.write(bytes);
    
            file.close();
        }
        else
        {
            // 错误处理-显示错误信息,或显示上一次缓存的图片或叉图。
        }
    }

    处理方式

    请求返回之后,首先我们必须判断错误码或错误状态,如果没有错误,正常读取数据,显示即可。但对于少数发生错误的情况时,我们可以按照下面的方式进行处理:

    1. 显示错误信息,或弹出提示框(不太友好)
    2. 显示叉图
    3. 显示上次缓存过的图片
    展开全文
  • Qt显示网络图片

    千次阅读 2015-12-03 00:26:59
    Qt 版本:4.8.4 ,需要network模块  最下面有打包  思路:下载到本地,然后打开。  使用QPixmap保存图片文件, 用QFile保存 图片 你会失望的。 代码片段(4)[全屏查看所有代码] 1. ...

    Qt 版本:4.8.4  ,需要network模块 

    最下面有打包 
    思路:下载到本地,然后打开。 

    使用QPixmap保存图片文件, 用QFile保存 图片  你会失望的。



    代码片段(4)[全屏查看所有代码]

    1. [文件] CImage.cpp ~ 1KB     下载(63)     

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    #include <QtGui/QtGui>
     
    #include "CImage.h"
     
    CImage::CImage(QWidget  *parent):QDialog(parent)
    {
        ImageLabel=new QLabel(tr("加载中."));
         
        QVBoxLayout *vboxLayout = new QVBoxLayout;
        vboxLayout->addWidget(ImageLabel);
        setLayout(vboxLayout);
     
        setWindowTitle(tr("加载网络图片测试"));
        resize(300, 200);
          
        currentPicture = new QPixmap;
         
        //获取网络图片
        QNetworkAccessManager *manager;
        manager = new QNetworkAccessManager(this);
     
        connect(manager, SIGNAL(finished(QNetworkReply*)),
                    this, SLOT(replyFinished(QNetworkReply*)));
        manager->get(QNetworkRequest(QUrl("http://www.oschina.net/img/logo_s2.png")));
    }
     
     
    void CImage::replyFinished(QNetworkReply *reply)
    {
        if(reply->error() == QNetworkReply::NoError)
        {
            //获取字节流构造 QPixmap 对象
            currentPicture->loadFromData(reply->readAll());
            QDateTime now;
            QString filename = now.currentDateTime().toString("yyMMddhhmmss.jpg");
            currentPicture->save(filename);//保存图片
            //qDebug()<<"picture saved as "<<filename;
            currentFileName = filename;
             
            //可以在onpaint中 用QPixmap 显示currentPicture,则这种方法则不需要保存
             
            //显示图片, 
            QMovie *move = new QMovie(currentFileName);
            ImageLabel->setMovie(move);
            move->start();
        }
    }

    2. [文件] CImage.h ~ 600B     下载(46)     

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    #ifndef CIMAGE_H
    #define CIMAGE_H
    #include <QtGui/QDialog>
    #include <QLabel>
    #include <QMovie>
    #include <QNetworkAccessManager>
    #include <QUrl>
    #include <QNetworkRequest>
    #include <QNetworkReply>
    #include <QPixmap>
     
    class QLabel;
    class QLineEdit;
    class QPushButton;
     
    class CImage:public QDialog
    {
        Q_OBJECT
    public:
        CImage(QWidget *parent=0);
        virtual ~CImage() {}
    private:
        QLabel *ImageLabel;
        QPushButton *ImageButton;
        QPixmap *currentPicture;
        QString currentFileName;
    public slots:
        void replyFinished(QNetworkReply *reply);
    };
     
    #endif // CIMAGE_H

    3. [文件] main.cpp ~ 223B     下载(49)     

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include<QtGui/QtGui>
    #include"CImage.h"
     
    int main(int argc,char*argv[])
    {
        QApplication app(argc,argv);
        QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
        CImage dlg;
        return dlg.exec();
    }

    4. [文件] CImage.zip ~ 22KB     下载(243) 


    from:http://www.oschina.net/code/snippet_583625_19562

    展开全文
  • ImageView:Qt自定义图片显示控件-支持加载本地图片和网络图片,并支持缓存
  • qt关于获取网络图片并保存在本地,运用QNetworkAccessManager,QNetworkReply,QNetworkRequest
  • qt实现本地\网络图片查看器,网络图片支持缓存。支持图片放大、缩小、翻转已经另存为。支持切换上一张下一张。 qt实现本地\网络图片查看器,网络图片支持缓存。支持图片放大、缩小、翻转已经另存为。支持切换上一张...
  • QT读取网络图片

    2016-01-02 22:44:55
    QUrl url( "http://pic.baike.soso.com/p/20090711/bki-20090711100323-24213954.jpg" ); QNetworkAccessManager manager; QEventLoop loop; ...你在QLabel显示图片
        QUrl url("http://pic.baike.soso.com/p/20090711/bki-20090711100323-24213954.jpg");
            QNetworkAccessManager manager;
            QEventLoop loop;
    
    
            // qDebug() << "Reading picture form " << url;
            QNetworkReply *reply = manager.get(QNetworkRequest(url));
            //请求结束并下载完成后,退出子事件循环
            QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
            //开启子事件循环
            loop.exec();
    
    
            QByteArray jpegData = reply->readAll();
            QPixmap pixmap;
            pixmap.loadFromData(jpegData);
            ui->image1->setPixmap(pixmap); // 你在QLabel显示图片
    
    
    展开全文
  • C++ QT 加载网络图片、本地图片

    千次阅读 2018-11-26 17:59:36
    源码下载:C++_QT 加载图片 QTShowImage.cpp #include "QtShowImage.h" #include &lt;QMovie&gt; #include &lt;QNetworkAccessManager&gt; #include &lt;QUrl&gt; #include &...
  • Qt下载网络图片到桌面

    千次阅读 2020-06-19 18:28:15
    QT += core gui network //必要的三个头文件 #include <QNetworkAccessManager>//网络请求 #include <QNetworkReply> #include <QNetworkRequest> #include <QDesktopServices>//获取桌面...
  • Qt之显示网络图片

    2016-03-01 16:07:00
    简述 Qt中包含了网络模块-network,我们可以很容易的进行各种网络编程和数据传输,关于...下面我们先看一个简单地示例:Qt显示一个网络图片。 简述 效果 源码 处理方式 效果 源码 创建按钮及显示...
  • 能基于linux下双方传输jpeg图片,界面冗杂
  • 服务器发送ID和图片 void MsgSocket::slotImage(const QString &id, const QImage &image) { QString l_id = id; m_msgType = MsgType_Image; QByteArray byteBuffer; QDataStream out(&byteBu...
  • C++ QT 显示图片

    2018-11-26 17:53:33
    采用c++和QT加载网络图片、加载本地图片,可以直接附加项目,看运行效果
  • QT QLabel加载网络图片

    2019-11-03 17:25:10
    // 你在QLabel显示图片 } 2.保存文件到本地 void widget::downloadFileFromUrl(QString strUrl, QString strFilePath){  qDebug()  " ;  QFile file;  file.setFileName(strFilePath);  ...
  • 一、前言 很多年前就做过类似的项目,无非就是将本地的图片上传到...可能同时在发送很多图片数据,而且还不能区分收到的图片是哪个客户端发来的,TCP长连接的话,还需要有心跳来检测连接,所以必须自定义一套协议来...
  • QT进行Android开发时无法用axweight控件,不能进行COM的操作。所以就将网络图片下载至本地。
  • qt QLabel 显示网络图片

    千次阅读 2015-04-09 10:27:38
    在网上试了很多代码都不能使用,自己写了写代码。 直接上代码 ... void QMusicLogo::setNetworkPic(const QString &szUrl) ... QObject::connect(reply, SIGNAL(finished()), &loop... // 你在QLabel显示图片 }
  • 自学QT之qml载入网络图片

    千次阅读 2016-01-03 18:35:45
    下面是qml实现载入网络图片的例子,当然,例子是书上的哦,我给加了注释。希望看大此篇博客的朋友可以快速上手。 代码走起! import QtQuick 2.3 import QtQuick.Window 2.2 import QtQuick.Controls 1.4//导入...
  • 文章目录知识点图片编码和解码图片显示(合理缩放图像)TCP传输与接受TCP基础客户端服务器 知识点 图片编码和解码 png编码为base64数据 :(用于客服端传输) QByteArray Client::getImageData(const QImage &...
  • QtNetwork_sendPicture::QtNetwork_sendPicture(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); temp = ui.picture; server = new QTcpServer(this); server->listen(QHostAddress::Any, 10001...
  • //获取网络图片 public slots: void replyFinished(QNetworkReply *reply);//获取图片完成 槽 private: Ui::Recipel *ui; QPixmap *currentPicture; QString currentFileName; }; #endif // RECIPEL_H cpp 文件内容 ...
  • Qt技巧:QTextEdit显示网络图片

    千次阅读 2015-12-03 00:25:50
    今天遇到一个问题,如何在QTextEdit上显示一张网络图片,用了几种办法,最终终于解决了,在这里分享一下。 方法一:直接显示  QTextEdit有一个属性,就是可以借助html标记来插入图片,例如

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 317
精华内容 126
关键字:

qt网络图片