首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

如何判断鼠标在一个widget下停留的时间

2012-09-17 
怎么判断鼠标在一个widget上停留的时间如果鼠标在一个widget上停留超过2s,就执行相应的动作,请问该用什么

怎么判断鼠标在一个widget上停留的时间
如果鼠标在一个widget上停留超过2s,就执行相应的动作,请问该用什么函数?

[解决办法]
void QWidget::enterEvent ( QEvent * event ) [virtual protected]是QWidget进入的事件,当鼠标进入时会响应该事件,可以改写这个函数,进入的时候启动个QTimer 2s timeout之后执行你要执行的那个slot函数;
void QWidget::leaveEvent ( QEvent * event ) [virtual protected]是对应的离开QWidget事件
[解决办法]
当鼠标进入一个QWidget时,通过下面的方法捕获:
virtual voidenterEvent ( QEvent * event )

当鼠标离开一个QWidget时,通过下面的方法捕获:
virtual voidleaveEvent ( QEvent * event )

用QTimer计时
[解决办法]
timer应该在类的头文件里声明为类成员变量。构造函数里new出来,并且connect
还要一个bool类型是类成员变量,储存鼠标是否在widget里
timerout的槽里,检测bool变量,emit一个自定义信号。

[解决办法]
鼠标移动进QWidget,timer->start(),鼠标移出stop()
timerout槽里也要timer->stop()
[解决办法]

探讨

引用:

引用:

void QWidget::enterEvent ( QEvent * event ) [virtual protected]是QWidget进入的事件,当鼠标进入时会响应该事件,可以改写这个函数,进入的时候启动个QTimer 2s timeout之后执行你要执行的那个slot函数;
void QWidget::leaveEven……

热点排行