QT实现鼠标拖动调整窗口大小

要想实现该功能,我们需要考虑一下几个问题。

1、如何获取鼠标的移动,点击,释放

    通过实现一下几个事件来获取窗体的事件

    void mouseMoveEvent(QMouseEvent *event);

    void mousePressEvent(QMouseEvent *event);

    void mouseReleaseEvent(QMouseEvent *event);

2、如何判断鼠标是否移动到窗体的边界

    一个窗体的结构大概如下图所示

    上左   上   上右

    左       中     右   

    下左   下    下右

    那么我们用数字来表示如下

    11    12    13

    21    22    23

    31    32    33

    那么我们就得到鼠标在除了22的位置就到达了窗体的边界

上代码:

enum {
    TOPLEFT = 11,
    TOP = 12,
    TOPRIGHT = 13,
    LEFT = 21,
    CENTER = 22,
    RIGHT = 23,
    BUTTOMLEFT = 31,
    BUTTOM = 32,
    BUTTOMRIGHT = 33
};

#define FRAMESHAPE 10    

public:
    void mouseMoveEvent(QMouseEvent *event);
    void mousePressEvent(QMouseEvent *event);
    void mouseReleaseEvent(QMouseEvent *event);
    int CalCursorCol(QPoint 
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值