#include "ImageWidget_nodrag.h" #include "ui_ImageWidget_nodrag.h" #include ImageWidget_nodrag::ImageWidget_nodrag(QWidget *parent) : QWidget(parent) , ui(new Ui::ImageWidget_nodrag), imageOffset(0, 0) { ui->setupUi(this); } ImageWidget_nodrag::~ImageWidget_nodrag() { delete ui; } void ImageWidget_nodrag::setPixmap(const QPixmap& newPixmap) { this->pixmap = newPixmap; imageOffset = QPoint(0, 0); update(); } void ImageWidget_nodrag::paintEvent(QPaintEvent *event) { QPainter painter(this); if (!pixmap.isNull()) { int centerX = width() / 2; int centerY = height() / 2; int pixmapCenterX = pixmap.width() / 2; int pixmapCenterY = pixmap.height() / 2; int x = centerX - pixmapCenterX + imageOffset.x(); int y = centerY - pixmapCenterY + imageOffset.y(); painter.drawPixmap(x, y, pixmap); } }