diff --git a/imagescrollarea.cpp b/imagescrollarea.cpp index c467470..245f8aa 100644 --- a/imagescrollarea.cpp +++ b/imagescrollarea.cpp @@ -11,6 +11,7 @@ ImageScrollArea::ImageScrollArea(QWidget *parent) : QScrollArea(parent) void ImageScrollArea::setImage(const QPixmap &img) { + m_pixmap = img; QPixmap pix = img.scaled(size(), Qt::KeepAspectRatio, Qt::SmoothTransformation); m_label->setPixmap(pix); m_label->resize(pix.size()); @@ -38,3 +39,10 @@ void ImageScrollArea::mousePressEvent(QMouseEvent *event) { m_lastPos = event->pos(); } + +void ImageScrollArea::resizeEvent(QResizeEvent *event) +{ + m_label->setPixmap(m_pixmap.scaled(event->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); + m_label->resize(event->size()); + QScrollArea::resizeEvent(event); +} diff --git a/imagescrollarea.h b/imagescrollarea.h index 34eec8e..99235d1 100644 --- a/imagescrollarea.h +++ b/imagescrollarea.h @@ -8,6 +8,7 @@ class ImageScrollArea : public QScrollArea { QPoint m_lastPos; QLabel *m_label; + QPixmap m_pixmap; public: explicit ImageScrollArea(QWidget *parent = 0); void setImage(const QPixmap &img); @@ -16,6 +17,7 @@ protected: void keyReleaseEvent(QKeyEvent *event); void mouseMoveEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent *event); + void resizeEvent(QResizeEvent *event); }; #endif // IMAGESCROLLAREA_H