qt按键长按效能的实现
qt按键长按功能的实现
qt中如何实现按键长按功能:在按键按下不松,实现自己想要的功能。keypressevent功能是按下就响应。我想按下后一段时间才响应。
------最佳解决方案--------------------
setAutoRepeat ( bool )
setAutoRepeatDelay ( int )
setAutoRepeatInterval ( int )
这有QPushButton的三个函数,
setAutoRepeat (true);
setAutoRepeatDelay ( 你需要的时间如:1000(ms) )
setAutoRepeatInterval (100000)
------其他解决方案--------------------
补充一下楼上的。
button的clicked信号其实是融合了两个信号,楼主要实现这样的功能的话,最好不要使用这个信号
button还有两个信号,分别是pressed 和released,pressed 触发的时候,启动一个定时器,一直按住超时的话执行你要的操作,但是如果还没到时间就松开时收到了released信号,就要停止定时器,不响应你要的操作
------其他解决方案--------------------
按下后,启动一个定时器,在超时槽函数中实现自己想要的功能。
------其他解决方案--------------------
同意楼上的观点,可以在pressed事件中触发另外一个SIGNAL
这个SIGNAL与一个定时器做绑定 在定时器里判定超时时间是否到了
------其他解决方案--------------------
从按下开始计时、然后弹起的时候判断这个时间到了吗?
到了就在弹起的时候执行你的action
------其他解决方案--------------------
接上贴:
正常用clicked信号
------其他解决方案--------------------
嗯~这些api可以搞定
------其他解决方案--------------------
[img=http://forum.****.net/PointForum/ui/scripts/****/Plugin/003/onion/12.gif]
学习了[/img]
qt中如何实现按键长按功能:在按键按下不松,实现自己想要的功能。keypressevent功能是按下就响应。我想按下后一段时间才响应。
------最佳解决方案--------------------
setAutoRepeat ( bool )
setAutoRepeatDelay ( int )
setAutoRepeatInterval ( int )
这有QPushButton的三个函数,
setAutoRepeat (true);
setAutoRepeatDelay ( 你需要的时间如:1000(ms) )
setAutoRepeatInterval (100000)
------其他解决方案--------------------
补充一下楼上的。
button的clicked信号其实是融合了两个信号,楼主要实现这样的功能的话,最好不要使用这个信号
button还有两个信号,分别是pressed 和released,pressed 触发的时候,启动一个定时器,一直按住超时的话执行你要的操作,但是如果还没到时间就松开时收到了released信号,就要停止定时器,不响应你要的操作
------其他解决方案--------------------
按下后,启动一个定时器,在超时槽函数中实现自己想要的功能。
------其他解决方案--------------------
同意楼上的观点,可以在pressed事件中触发另外一个SIGNAL
这个SIGNAL与一个定时器做绑定 在定时器里判定超时时间是否到了
------其他解决方案--------------------
从按下开始计时、然后弹起的时候判断这个时间到了吗?
到了就在弹起的时候执行你的action
------其他解决方案--------------------
接上贴:
正常用clicked信号
------其他解决方案--------------------
嗯~这些api可以搞定
------其他解决方案--------------------
[img=http://forum.****.net/PointForum/ui/scripts/****/Plugin/003/onion/12.gif]
学习了[/img]