php拉动框,如何画出按下鼠标左键并拖动时的矩形框

如何画出按下鼠标左键并拖动时的矩形框

我想在一幅图片中通过画矩形框进行标记,因此重写了和鼠标事件有关的函数:

void MainWindow::mouseMoveEvent(QMouseEvent *)

{

QApplication::setOverrideCursor(Qt::CrossCursor);

status->setText(QString::number(mapFromGlobal(QCursor::pos()).x()) +

"," +

QString::number(mapFromGlobal(QCursor::pos()).y()));

}

void MainWindow::mousePressEvent(QMouseEvent *e)

{

if(e->button() == Qt::LeftButton){   //鼠标左键按下

startPoint.setX(e->pos().x() -

ui->label->geometry().topLeft().x() +

ui->label->mapFrom(this,ui->label->geometry().topLeft()).x());

startPoint.setY(e->pos().y() -

ui->label->geometry().topLeft().y() +

ui->label->mapFrom(this,ui->label->geometry().topLeft()).y());

qDebug()<

}

}

void MainWindow::mouseReleaseEvent(QMouseEvent *e)

{

if(e->button() == Qt::LeftButton){   //鼠标左键释放

endPoint.setX(e->pos().x() -

ui->label->geometry().topLeft().x() +

ui->label->mapFrom(this,ui->label->geometry().topLeft()).x());

endPoint.setY(e->pos().y() -

ui->label->geometry().topLeft().y() +

ui->label->mapFrom(this,ui->label->geometry().topLeft()).y());

qDebug()<

drawSomething(startPoint,endPoint); //画一个矩形

update();

}

}

这样虽然能达到目的,但是按下鼠标左键拖动时不显示矩形框。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值