qt自定义窗口在拖动过程中出现抖动且拖动后位置看上去不对

引言

本文旨在一个问题的记录:自定义窗口拖动的过程中,窗口不能很好的跟随鼠标移动,此外会出现窗口拖动时抖动。
下面是上文描述的效果:

拖动时窗口抖动


本文针对上面的问题,找出解决方法,且说明为什么。

开发环境

使用QtCreator开发。其相关的Qt库使用Qt6.6.0。
在这里插入图片描述

关键性代码

这里只给出自定义窗口拖动功能需要的部分关键代码。

    //窗口拖动相关变量声明
    QPointF m_pressPos;//鼠标按下时位置
    QPointF m_topLeftPos;//自定义窗口左上角的位置

    bool m_isPress;//鼠标左键是否按下

//功能函数定义
void QCustomWidget::mousePressEvent(QMouseEvent *event)
{
   
    qDebug()<<"mousePressEvent";
    if(event->button() == Qt::LeftButton){
   
        m_pressPos = event->position();//相对于接收事件的窗口或者项,事件发生时的位置坐标
        m_topLeftPos = geometry().topLeft();

        m_isPress = true;
    }
    qDebug()<<"m_pressPos="<<m_pressPos<<", m_topLeftPos="<<m_topLeftPos;

    QWidget::mousePressEvent(event);
}

void QCustomWidget::mouseReleaseEvent(QMouseEvent *event)
{
   
    m_isPress = false;
    QWidget::mouseReleaseEvent(event);
}

void QCustomWidget::mouseMoveEvent(QMouseEvent *event)
{
   
    qDebug()<<"mouseMoveEvent";
    if(m_isPress && event->type() 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肩上风骋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值