Qt平台C++拖动功能实现

selectwindow.cpp
void SelectWindow::mouseMoveEvent(QMouseEvent *event)
{

if(event->buttons() & Qt::LeftButton)
{
    QRect mainWindow(GlobalVariables::location,QSize(825,385));
    QRect thisWindow(this->pos(),this->size());
    if(mainWindow.contains(QCursor::pos()))
    {
        emit activeMainWindow();
    }
    if(thisWindow.contains(QCursor::pos()))
    {
        activateWindow();
        //raise();
    }
}

}
void SelectWindow::mouseReleaseEvent(QMouseEvent *event)
{
this->setCursor(Qt::ArrowCursor);
emit dragMouseRealsed();
}

mainwindow.cpp

connect(st,SIGNAL(dragMouseRealsed()),this,SLOT(leftWindowDrag()));//信号槽

void MainWindow::leftWindowDrag()
{
QPoint event=mapFromGlobal(QCursor::pos());
if(buttonNo_0->rect().contains(event.x()-185,event.y()-90))
{
dropButtonNo=0;
}

if(buttonNo_10->rect().contains(event.x()-215,event.y()-90))
{
    dropButtonNo=1;
}

if(buttonNo_2->rect().contains(event.x()-245,event.y()-90))
{
    dropButtonNo=2;
}

if(buttonNo_3->rect().contains(event.x()-275,event.y()-90))
{
    dropButtonNo=3;
}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值