#include "pictureview.h" #include #include #include #include #include PictureView::PictureView(QWidget* parent) : QWidget(parent) { http.connect(&http, SIGNAL(requestFinished(int,bool)),this, SLOT(onLoad(int,bool)) ); } void PictureView::paintEvent ( QPaintEvent* event) { Q_UNUSED(event); QPainter painter(this); painter.drawPixmap(0,0,image); painter.end(); } void PictureView::loadFromUrl(QString source) { QMap::iterator it = map.find(source); if (it != map.end() ) { image = it.value(); this->repaint(); } else { requestedUrl = source; QUrl url(requestedUrl); http.setHost(url.host() ); http.get(url.path(), 0); } } void PictureView::onLoad(int id, bool ok) { Q_UNUSED(id); Q_UNUSED(ok); qint64 byteCount = http.bytesAvailable(); if (byteCount > 0) { QByteArray data = http.readAll(); QPixmap pixmap; pixmap.loadFromData( data ); QPixmap scaledImage = pixmap.scaledToHeight(size().height(), Qt::SmoothTransformation ); image = scaledImage; this->repaint(); map.insert(requestedUrl, scaledImage); } }