【问题标题】:QRubberBand not drawingQRubberBand 不绘图
【发布时间】:2017-06-01 08:38:00
【问题描述】:

我的代码如下,我按照 qt 文档中的示例进行操作,但我的小部件上没有绘制任何内容,有人知道出了什么问题吗?谢谢!

 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;
    }


}

}

【问题讨论】:

    标签: qt


    【解决方案1】:

    您的 mousemove 事件处理程序放置在左键单击检查父条件中。由于对于 MouseMove 事件 "((QMouseEvent*)event)->button() == Qt::LeftButton" 将返回 false,因此未处理 MouseMove 事件..

    解决方案:

      Move the "else if" part handling MouseMove outside the if condition.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多