[英]QRubberBand not drawing
我的代碼如下,我遵循了qt doc上的示例,但是在我的窗口小部件上未繪制任何內容,有人知道這是什么錯誤嗎? 謝謝!
ui.axWidget_X->installEventFilter(this);
bool qtTest::eventFilter(QObject * obj, QEvent * event)
{
if((QAxWidget *)obj == ui.axWidget_X && ((QMouseEvent*)event)->button() == Qt::LeftButton)
{
if(event->type()== QEvent::MouseButtonPress)
{
origin = ((QMouseEvent*)event)->Pos();
if (!rubberBand)
rubberBand = new QRubberBand(QRubberBand::Rectangle, this);
rubberBand->setGeometry(QRect(origin, QSize()));
rubberBand->show();
return true;
}else if(event->type()== QEvent::MouseButtonRelease)
{
rubberBand->hide();
//
return true;
}else if(event->type() == QEvent::MouseMove)
{
rubberBand->setGeometry(QRect(origin, ((QMouseEvent*)event)>Pos()).normalized());
return true;
}
}
}
您的mousemove事件處理程序位於左側按鈕中,單擊檢查父級條件。 因為對於MouseMove事件,“((QMouseEvent *)event)-> button()== Qt :: LeftButton”將返回false,所以不會處理MouseMove事件。
解:
Move the "else if" part handling MouseMove outside the if condition.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.