小编aaa*_*omg的帖子

qt - 如何通过http下载和保存图像?

我正在尝试在控制台应用程序中使用 Qt 下载并保存一些图像。这是我到目前为止得到的,(所有代码都在编译,但运行后,它似乎没有进入replyFinished()功能......)

void Test::start()
{
    std::cout << "start1";
    QNetworkAccessManager *manager = new QNetworkAccessManager();
    connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
    manager->get(QNetworkRequest(QUrl("http://www.exylum.mydevil.net/firefox.jpg")));
}

void Test::replyFinished(QNetworkReply* reply)
{
    std::cout << "st";
    QImage* img2 = new QImage();
    img2->loadFromData(reply->readAll());

    if(img2->isNull())
        std::cout << "oops";

    if(img2->save("omg2.jpg", "JPG"))
        std::cout << "saved";
    else
        std::cout << "dont...";
}
Run Code Online (Sandbox Code Playgroud)

c++ windows qt

6
推荐指数
1
解决办法
1万
查看次数

qt - 如何通过http下载和保存图像?

我想下载1张图片并保存.这是我到目前为止:

    QCoreApplication a(argc, argv);

    QNetworkAccessManager *manager = new QNetworkAccessManager();

    QNetworkReply *img = manager->get(QNetworkRequest(QUrl("http://placekitten.com/200/300")));

    QImage* img2 = new QImage();
    img2->save(img->readAll(), "omg2.png");
Run Code Online (Sandbox Code Playgroud)

但是id不起作用,请帮忙!

编辑:这也不工作,我在控制台得到"哎呀":

 QNetworkAccessManager *manager = new QNetworkAccessManager();
   //connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(replyFinished(QNetworkReply*)));

    QNetworkReply *img = manager->get(QNetworkRequest(QUrl("http://placekitten.com/200/300")));

    QImage* img2 = new QImage();
    img2->loadFromData(img->readAll());

    if(img2->isNull())
        std::cout << "oops";

    img2->save("omg2.png");
Run Code Online (Sandbox Code Playgroud)

编辑:vtableqmake错误仍然存​​在后,我得到奇怪的错误:

#include <QtCore/QCoreApplication>
#include <QNetworkAccessManager>
#include <QtNetwork>
#include <QImage>
#include <QPixmap>
#include <iostream>


class omg  : public QObject{

     Q_OBJECT

    public:
        void start(){


            QNetworkAccessManager *manager = new QNetworkAccessManager();
            connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*))); …
Run Code Online (Sandbox Code Playgroud)

c++ qt

1
推荐指数
1
解决办法
4496
查看次数

标签 统计

c++ ×2

qt ×2

windows ×1