Can you point out me where i had done the mistake?
Using an uninitialised pointer... see my last post.
Using a global where a member variable or local variable would do.
Using a pointer where none is needed (pix) is inelegant and potentially fatal if you never init the pointer.
Here is a complete example:
#include <QtGui>
#include <QtNetwork>
#include <QDebug>
Q_OBJECT
public:
setCentralWidget(m_label);
resize(320, 240);
connect(&m_nam, SIGNAL(finished(QNetworkReply*)), SLOT(finished(QNetworkReply*)));
QNetworkRequest request
(QUrl("http://www.qtcentre.org/images/qtcentre/QtCentre.png"));
(void) m_nam.get(request); // Deliberately ignoring return value
}
public slots:
void finished(QNetworkReply *reply) {
if (reply->error() == QNetworkReply::NoError) {
bool ok = pixmap.loadFromData( data );
m_label->setPixmap( pixmap );
qDebug() << "Data size ==" << data.size();
qDebug() << "Conversion OK ==" << ok;
qDebug() << "Pixmap is null ==" << pixmap.isNull();
}
else
qDebug() << "Network error" << reply->errorString();
}
private:
QNetworkAccessManager m_nam;
};
int main(int argc, char *argv[])
{
MainWindow m;
m.show();
return app.exec();
}
#include "main.moc"
#include <QtGui>
#include <QtNetwork>
#include <QDebug>
class MainWindow: public QMainWindow {
Q_OBJECT
public:
MainWindow(QWidget *p = 0): QMainWindow(p) {
m_label = new QLabel(this);
setCentralWidget(m_label);
resize(320, 240);
connect(&m_nam, SIGNAL(finished(QNetworkReply*)), SLOT(finished(QNetworkReply*)));
QNetworkRequest request(QUrl("http://www.qtcentre.org/images/qtcentre/QtCentre.png"));
(void) m_nam.get(request); // Deliberately ignoring return value
}
public slots:
void finished(QNetworkReply *reply) {
if (reply->error() == QNetworkReply::NoError) {
QByteArray data( reply->readAll() );
QPixmap pixmap;
bool ok = pixmap.loadFromData( data );
m_label->setPixmap( pixmap );
qDebug() << "Data size ==" << data.size();
qDebug() << "Conversion OK ==" << ok;
qDebug() << "Pixmap is null ==" << pixmap.isNull();
}
else
qDebug() << "Network error" << reply->errorString();
}
private:
QLabel *m_label;
QNetworkAccessManager m_nam;
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow m;
m.show();
return app.exec();
}
#include "main.moc"
To copy to clipboard, switch view to plain text mode
Bookmarks