————————mainwindow.h————————-
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
#include
#include
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
class DraggableLabel : public QLabel
{
Q_OBJECT
public:
explicit DraggableLabel(QWidget *parent = nullptr) : QLabel(parent), isDragging(false) {}
protected:
void mousePressEvent(QMouseEvent *event) override
{
if (event->button() == Qt::LeftButton) {
isDragging = true;
dragStartPosition = event->pos();
}
}
void mouseMoveEvent(QMouseEvent *event) override
{
if (isDragging) {
int dx = event->pos().x() – dragStartPosition.x();
int dy = event->pos().y() – dragStartPosition.y();
move(pos().x() + dx, pos().y() + dy);
}
}
void mouseReleaseEvent(QMouseEvent *event) override
{
if (event->button() == Qt::LeftButton) {
isDragging = false;
}
}
private:
bool isDragging;
QPoint dragStartPosition;
};
#endif // MAINWINDOW_H
——————————mainwindow.cpp————————————-
#include “mainwindow.h”
#include “ui_mainwindow.h”
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPixmap pixmap(“/home/orangepi/11111.jpg”);
/*
ui->label->setPixmap(pixmap);
ui->label->setGeometry(50, 50, pixmap.width(), pixmap.height());
ui->label->setObjectName(“draggableLabel”);
*/
DraggableLabel *label2 = new DraggableLabel(this);
label2->setPixmap(pixmap);
label2->setGeometry(50, 50, pixmap.width(), pixmap.height());
}
MainWindow::~MainWindow()
{
delete ui;
}