本文讲解Qt-无边框可移动可拖拽调整大小窗体。
通过鼠标的按下移动进行窗体的移动,拖拽调整窗体大小。
实现过程如下:
创建QWidget窗体,添加一个按钮控制窗体的关闭。
#ifndef MYWIDGET_H
#define MYWIDGET_H#include <QWidget>#include <QMouseEvent>
//定义拖拽窗体边缘检测大小
#define PADDING 10
//定义识别所处的边缘位置
enum Direction
{UP, DOWN, LEFT, RIGHT, LEFTTOP, LEFTBOTTOM, RIGHTBOTTOM, RIGHTTOP, NONE
};namespace Ui {
class MyWidget;
}class MyWidget : public QWidget
{Q_OBJECTpublic:explicit MyWidget(QWidget *parent = 0);~MyWidget();
public://鼠标的位置,改变光标void region(const QPoint ¤tGlobalPoint);
protected:// 鼠标按下 鼠标相对于窗体的位置void mousePressEvent(QMouseEvent *event);//鼠标移动 若鼠标左键被按下,移动窗体位置void mouseMoveEvent(QMouseEvent *event);