Qt 拖动控件时使其自动对齐

演示及其理论

演示:

理论:首先获取父窗口下所有子窗口,然后拖动控件去检测,检测成功后使用画家类绘制辅助线。

1、拖动控件

        拖动控件需要满足以下条件:鼠标点击处有控件,鼠标位置的偏移。


/////////////////////////////////////////////////
void MyPushButton::mousePressEvent(QMouseEvent *e)
{
    
    if(e->button()==Qt::LeftButton){
        QPoint mousePos = e->pos();
        IsMousePress=true;
        QWidget * scele = childAt(mousePos);//获取鼠标点击位置的控件
        lastMousePos=e->globalPos();//获取全局位置
    }
    QWidget::mousePressEvent(e);
}

void MyPushButton::mouseReleaseEvent(QMouseEvent *e)
{
    if(e->button()==Qt::LeftButton){
        IsMousePress=false;
    }
    QWidget::mouseReleaseEvent(e);
}

void MyPushButton::mouseMoveEvent(QMouseEvent *e)
{
    if(IsMousePress&&你的控件!=null){
        QPoint delta=e->globalPos()-lastMousePos;//鼠标位置差值,没有这个会让控件原点为鼠标坐标
        你的控件
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值