#ifndef MYDRAGQT_H
#define MYDRAGQT_H
#include <QtWidgets/QWidget>
#include "ui_mydragqt.h"
class MyDragQt : public QWidget
{
Q_OBJECT
public:
MyDragQt(QWidget *parent = 0);
~MyDragQt();
private:
Ui::MyDragQtClass ui;
private:
void paintEvent(QPaintEvent*);
void mousePressEvent (QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
private:
//辅助函数
int calcPosition(const QPoint& pt);
void setCursorType(int value);
private:
bool m_bLeftMouseButtonPressed;
int m_lastPosition;
QPoint m_ptLast;
Qt::CursorShape m_currentCursor;
};
#endif // MYDRAGQT_H
实现:
#include "mydragqt.h"
#include <QPainter>
#include <QMouseEvent>
#include <QDebug>
namespace
{
const int g_padding = 4;
int helperCalcPosition(int pos,