ImageWidget_nodrag.cpp 908 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include "ImageWidget_nodrag.h"
  2. #include "ui_ImageWidget_nodrag.h"
  3. #include <QPainter>
  4. ImageWidget_nodrag::ImageWidget_nodrag(QWidget *parent)
  5. : QWidget(parent)
  6. , ui(new Ui::ImageWidget_nodrag),
  7. imageOffset(0, 0)
  8. {
  9. ui->setupUi(this);
  10. }
  11. ImageWidget_nodrag::~ImageWidget_nodrag()
  12. {
  13. delete ui;
  14. }
  15. void ImageWidget_nodrag::setPixmap(const QPixmap& newPixmap) {
  16. this->pixmap = newPixmap;
  17. imageOffset = QPoint(0, 0);
  18. update();
  19. }
  20. void ImageWidget_nodrag::paintEvent(QPaintEvent *event) {
  21. QPainter painter(this);
  22. if (!pixmap.isNull()) {
  23. int centerX = width() / 2;
  24. int centerY = height() / 2;
  25. int pixmapCenterX = pixmap.width() / 2;
  26. int pixmapCenterY = pixmap.height() / 2;
  27. int x = centerX - pixmapCenterX + imageOffset.x();
  28. int y = centerY - pixmapCenterY + imageOffset.y();
  29. painter.drawPixmap(x, y, pixmap);
  30. }
  31. }