怎么判断鼠标在一个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()
[解决办法]