簡體   English   中英

QRubberBand未繪制

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM