本文讲解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_OBJECT
public:
explicit MyWidget(QWidget *parent = 0);
~MyWidget();
public:
//鼠标的位置,改变光标
void region(const QPoint ¤tGlobalPoint);
protected:
// 鼠标按下 鼠标相对于窗体的位置
void mousePressEvent(QMouseEvent *event);
//鼠标移动 若鼠标左键被按下,移动窗体位置
void mouseMoveEvent(QMouseEvent *event);