• 6167阅读
  • 7回复

enterEvent事件不好使 [复制链接]

上一主题 下一主题
离线banyibanyi
 

只看楼主 正序阅读 楼主  发表于: 2010-03-30
void touchLabel::enterEvent(QEvent *ev)
{
        qDebug()<<"in";

    enterEvent(ev);
}
void touchLabel::leaveEvent(QEvent *ev)
{
    qDebug()<<"out";

    leaveEvent(ev);
}

我继承了QWidget

但是当我的鼠标进入或者出自定义的QWidget时并没有内容输出 需要设置什么状态开启之类的吗?
离线banyibanyi

只看该作者 7楼 发表于: 2010-04-01
Re:enterEvent事件不好使【已解决】
现在我改成了基类为QMainWindow 正常了 谢谢大家的帮助
QWidget我再改改看看哪错了
离线napier

只看该作者 6楼 发表于: 2010-03-31
程序的其他地方应该有问题

我以前在继承 QWidget 的类中用过 enterEvent,没发现你遇到的这种问题。不过当时发现了 enterEvent 的一个 Bug,也是会使 enterEvent 没有反应的,但是需要在无边框窗口中使用右键菜单才会出现。
离线banyibanyi

只看该作者 5楼 发表于: 2010-03-31
引用第4楼napier于2010-03-31 09:16发表的  :
enter/leave event 不需要点击,只要光标进入特定的区域就可以了。
程序别的地方看不到,不知道有没有别的错误,但是
enterEvent(ev); 调用的是 void touchLabel::enterEvent(QEvent *ev) 本身,这个是不行的。去掉这句,或者用 QWidget::enterEvent(ev);



我改成去掉最后的返回还是不行

我发现如果继承QMainWindow就好用QWidget就不好用 是不是我继承的基类不对啊  一定要QMainWindow吗?
离线napier

只看该作者 4楼 发表于: 2010-03-31
enter/leave event 不需要点击,只要光标进入特定的区域就可以了。

程序别的地方看不到,不知道有没有别的错误,但是

enterEvent(ev); 调用的是 void touchLabel::enterEvent(QEvent *ev) 本身,这个是不行的。去掉这句,或者用 QWidget::enterEvent(ev);
离线xtfllbl

只看该作者 3楼 发表于: 2010-03-31
和鼠标进出没有关系,enter的意思是你的focus落到了label上,也就是至少你要点击才会enter,点击其他控件才会leave,和你鼠标滑过没关系,系统是不会鸟你的。
上海欢迎您
离线banyibanyi

只看该作者 2楼 发表于: 2010-03-31
我只是先想让事件有所相应  现在两个输出都没有啊 等事件相应了 我再改
离线dbzhang800

只看该作者 1楼 发表于: 2010-03-30
你这不是两个死循环么?
快速回复
限100 字节
 
上一个 下一个