123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #include "pixmapviewer.h"
- #include "ui_pixmapviewer.h"
- PixmapViewer::PixmapViewer(QWidget* parent)
- : QWidget(parent)
- , ui(new Ui::PixmapViewer)
- {
- ui->setupUi(this);
- }
- PixmapViewer::~PixmapViewer()
- {
- delete ui;
- }
- void PixmapViewer::paintEvent(QPaintEvent* event)
- {
- QPainter painter;
- painter.begin(this);
- painter.fillRect(rect(), QColor(97, 97, 97));
- if (!m_tempPix.isNull()) {
- QRect rc;
- rc.setRect(m_startPoint.x(), m_startPoint.y(), m_tempPix.width(), m_tempPix.height());
- painter.drawPixmap(rc, m_tempPix, m_tempPix.rect());
- }
- painter.end();
- }
- void PixmapViewer::setImage(QPixmap& image)
- {
- m_image = image;
- m_startPoint = QPoint(1, 1);
- setFactor(1);
- m_mousedownFlag = false;
- }
- void PixmapViewer::setFactor(double factor)
- {
- m_factor = factor;
- m_tempPix = m_image.scaled(m_image.width() * m_factor, m_image.height() * factor,
- Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation);
- update();
- }
- void PixmapViewer::wheelEvent(QWheelEvent* event)
- {
- if (event->delta() > 0) {
- setFactor(m_factor * 1.1);
- } else {
- setFactor(m_factor * 0.9);
- }
- }
- void PixmapViewer::mousePressEvent(QMouseEvent* event)
- {
- m_mousedownFlag = true;
- m_mousedownPoint = mapFromGlobal(cursor().pos());
- update();
- }
- void PixmapViewer::mouseReleaseEvent(QMouseEvent* event)
- {
- m_mousedownFlag = false;
- update();
- }
- void PixmapViewer::mouseMoveEvent(QMouseEvent* event)
- {
- if (m_mousedownFlag) {
- QPoint pt = mapFromGlobal(cursor().pos());
- int x = pt.x() - m_mousedownPoint.x();
- int y = pt.y() - m_mousedownPoint.y();
- m_startPoint.setX(m_startPoint.x() + x);
- m_startPoint.setY(m_startPoint.y() + y);
- m_mousedownPoint = pt;
- update();
- }
- }
|