QT实现自定义窗口拖曳功能
原理说明
以电脑屏幕左上角为(0,0)点,向右为X轴,向下为Y轴,构建世界坐标系。从鼠标点击位置出发,指向程序窗口左上角位置的向量,在拖曳过程中是不变的。因此,在每一时刻,用鼠标点击位置加上此向量,获得的坐标点即是此刻,程序窗口应移动到的位置。
源代码
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMouseEvent>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
bool m_bPressed;
QPoint m_pXL;//鼠标按下的点到软件左上角的点的向量
void mousePressEvent(QMouse