41 lines
981 B
C++
41 lines
981 B
C++
#include "imagescrollarea.h"
|
|
#include <QMouseEvent>
|
|
#include <QScrollBar>
|
|
#include <QKeyEvent>
|
|
|
|
ImageScrollArea::ImageScrollArea(QWidget *parent) : QScrollArea(parent)
|
|
{
|
|
m_label = new QLabel(this);
|
|
setWidget(m_label);
|
|
}
|
|
|
|
void ImageScrollArea::setImage(const QPixmap &img)
|
|
{
|
|
QPixmap pix = img.scaled(size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
|
m_label->setPixmap(pix);
|
|
m_label->resize(pix.size());
|
|
}
|
|
|
|
void ImageScrollArea::keyPressEvent(QKeyEvent *event)
|
|
{
|
|
event->ignore();
|
|
}
|
|
|
|
void ImageScrollArea::keyReleaseEvent(QKeyEvent *event)
|
|
{
|
|
event->ignore();
|
|
}
|
|
|
|
void ImageScrollArea::mouseMoveEvent(QMouseEvent *event)
|
|
{
|
|
QPoint delta = m_lastPos - event->pos();
|
|
horizontalScrollBar()->setValue(horizontalScrollBar()->value() - delta.x());
|
|
verticalScrollBar()->setValue(verticalScrollBar()->value() - delta.y());
|
|
m_lastPos = event->pos();
|
|
}
|
|
|
|
void ImageScrollArea::mousePressEvent(QMouseEvent *event)
|
|
{
|
|
m_lastPos = event->pos();
|
|
}
|