0
我在QLabel
上有一個橡皮筋。我想用鼠標拖動和調整橡皮筋的大小。任何人都可以請幫忙嗎?如何在Qlabel上使用鼠標拖動和調整橡皮筋?
下面是我的代碼:
void Widget::mousePressEvent(QMouseEvent *event)
{
if(mRubberBand->geometry().contains(event->pos()))
{
rubberband_offset = event->pos() - mRubberBand->pos();
move_rubberband = true;
}
else
{
Origin= event->pos();
//qDebug()<<Origin;
// Move the rubber band to the new position
// and set its size to 0x0
mRubberBand->setGeometry(QRect(Origin, QSize()));
// Display the rubber band
mRubberBand->show();
}
}
}
void Widget::mouseMoveEvent(QMouseEvent *event)
{
// esize the rubber band rectangle
if(move_rubberband)
{
mRubberBand->move(event->pos() - rubberband_offset);
}
else
{
mRubberBand->setGeometry(QRect(Origin, event->pos()).normalized());
// Display the size of the rectangle
QToolTip::showText(event->globalPos(), QString("%1,%2")
.arg(mRubberBand->size().width())
.arg(mRubberBand->size().height()),this);
//qDebug()<<Origin<<" "<<mRubberBand->size().width()<<","<<mRubberBand->size().height();
//qDebug()<<Origin.x()<<Origin.y();
}
}
void Widget::mouseReleaseEvent(QMouseEvent *event)
{
EndPoint = event->pos();
}
我設置move_rubberband爲false在主要功能。所以這對我來說不是一個問題.... –
我看不出你如何確定它設置爲false。它在pressEvent中被設置爲true,並且會在releaseEvent中被重新設置? – Aaron
此外,它會很有趣,什麼工作如你所料,什麼不工作。您是否嘗試傳播一些qDebug()調用,以便在整個拖放操作過程中實際執行代碼? – Aaron