Qt实现窗口的无边框化且可拉伸大小

简述

大家在做Qt的时候,经常都会遇到自定义QWidget吧,但一旦实现后,有变的不可以拉伸了,今天我们就来做一个可拉伸的自定义QWidget并且可以移动

实现

#ifndef AUTOSIZEWIDGET_H
#define AUTOSIZEWIDGET_H

#include "basewidget.h"
//这是mainWindow的基类,继承与QWidget,实现了可拉伸大小
enum Direction {
    UP, DOWN, LEFT, RIGHT, LEFTTOP, LEFTBOTTOM, RIGHTBOTTOM, RIGHTTOP, NONE
};
class AutoSizeWidget : public QWidget
{
    Q_OBJECT

public:
    AutoSizeWidget(QWidget *parent=0);
    ~AutoSizeWidget();
protected:
    void mouseMoveEvent(QMouseEvent *) override;
    void mousePressEvent(QMouseEvent *) override;
    void mouseReleaseEvent(QMouseEvent *) override;
private:
    void judgeRegionSetCursor(const QPoint&);
    const int Padding = 2;
    bool isLeftPressDown;  // 判断左键是否按下
    QPoint dragPosition;   // 窗口移动拖动时需要记住的点 
    // 窗口大小改变时,记录改变方向
    Direction dir;        
};

#endif // AUTOSIZEWIDGET_H

cpp文件

#include "autosizewidget.h"

AutoSizeWidget::AutoSizeWidget(QWidget *parent)
    : QWidget(parent)
{
    isLeftPressDown = 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值