QT移动无边框窗口

将QT设计窗口设置成无边框形式后无法移动窗口,在网上找了一些材料,挑选了一个适合自己的,现在分享出来。

1,在 wight.h 里面定义一个公共成员变量  QPoint dragPosition;

2,重写鼠标按下事件和鼠标移动事件

鼠标按下事件

void Widget::mousePressEvent(QMouseEvent *event)
{
    if(event->button() == Qt::LeftButton)
    {
        dragPosition = event->globalPos()-frameGeometry().topLeft();
       //globalPos()获取根窗口的相对路径,frameGeometry().topLeft()获取主窗口左上角的位置
        event->accept();  //鼠标事件被系统接收
    }
 
}
 

鼠标点击事件

void Widget::mouseMoveEvent(QMouseEvent *event)
{
        this->move(event->globalPos()-dragPosition);
        event->accept();
}
ok,好嘞,很简单是吧。

【参考】http://www.xuebuyuan.com/1899289.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值