0

每次我用鼠标在自定义的 QFrame 上移动一个像素时,我都会收到一个离开事件。为什么会这样?。

我重新实现了休假和进入事件,如下所示。如您所见,我尝试评论 QFrame enterEvent,并使用布尔值限制重复,但它不起作用,因为连续生成进入和离开:

  void enterEvent(  QEvent *event   ){
    //QFrame::enterEvent(event);
    if (!mouseHover_)
    {
      mouseHover_ = true;
      emit hoverInSignal(""); 
    }
  }
  void      leaveEvent( QEvent *event   ){
    //QFrame::leaveEvent(event);
    if (mouseHover_)
    {
      SmartUIWrapper::Instance()->addInfoMessage("out");
      emit hoverOutSignal(); 
      mouseHover_ = false;
    }
  }

它与焦点有关吗?

4

1 回答 1

0

我发现了原因。当我悬停时,我在这个 QFrame 上创建了一个面板。

当我移动鼠标时,由于面板位于光标位置的右下侧,每次我将 QFrame 移到右侧或底部时,当我将鼠标悬停在我创建的这个新面板时,它就会失去焦点,所以它得到再次关闭,然后另一个悬停出现,然后它再次创建......再一次......每次我悬停新面板。

于 2013-10-09T11:52:05.340 回答