Events 在Qt中的自定义小部件中生成多个休假事件

Events 在Qt中的自定义小部件中生成多个休假事件,events,qt4,hover,Events,Qt4,Hover,每次我用鼠标在自定义QFrame上移动一个像素时,我都会收到一个请假事件。为什么会这样 我重新执行了请假并进入活动,如下所示。如您所见,我试图对QFrame enterEvent进行注释,并使用布尔值限制重复,但它不起作用,因为连续生成了enter和leave: void enterEvent( QEvent *event ){ //QFrame::enterEvent(event); if (!mouseHover_) { mouseHover_

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

我重新执行了请假并进入活动,如下所示。如您所见,我试图对QFrame enterEvent进行注释,并使用布尔值限制重复,但它不起作用,因为连续生成了enter和leave:

  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;
    }
  }
这和焦点有关吗?

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


当我移动鼠标时,由于面板位于光标位置的右下侧,每次我将QFrame移动到右侧或底部,当我将我创建的这个新面板悬停时,它会松开焦点,因此它会再次关闭,然后再次悬停,然后再次创建它。。。再一次。。。每次我将新面板悬停。

我发现它取决于移动方向。框架是一个正方形,里面有一个像素贴图。如果我向下移动,只发生两次(这也是错误的…),如果我向上移动,每个像素发射一个事件。左边和右边都一样。有时。。。。奇怪的东西,这…我发现了更多的东西。这个QFrame在我的应用程序中随处可见。在其他地方,它可以完美地工作。就一次。但这两者之间的区别只是内容。其他人有同样的形象,但更大。里面没有文字。但是他们是一样的!