• 10148阅读
  • 6回复

keyPressEvent 处理”按键按下不松开“的事件 [复制链接]

上一主题 下一主题
离线guanxu
 

只看楼主 倒序阅读 楼主  发表于: 2008-10-27
— 本帖被 XChinux 执行加亮操作(2008-11-02) —
我想编写一个功能:
在主窗口中按住空格键不放,出来一个对话框,松开空格对话框隐藏。
正常的“点击,松开”操作不出现对话框。

我试着用 keyPressedEvent 设置 show = true,  在 keyPressedEvent 中设置 show = false;
但是发现当按住空格键不放时,其实是 keyPressedEvent  和 keyPressedEvent  交替发生的,
这样的话最后一个发生的总是 keyPressedEvent  。

我想过,可以用 QTimer 来计时,单位时间内 keyPressedEvent  和 keyPressedEvent  重复次数
达到一定的值就认为是 按键按下没松开。不过这也太麻烦了。

我想 Qt 应该有内部的支持吧,帮助文件中找了半天也不知道该怎么办。
请各位高手帮忙解答!!
离线lazybone
只看该作者 1楼 发表于: 2008-10-27
没弄出来
按下键时 ketReplaseEvent 里的语句一直在运行 窗口不断地闪
等高手,,,
离线songxizg

只看该作者 2楼 发表于: 2008-10-27
sssssssssssssssssssssssssssssssssssssssssssssss
这么多s就是按下不防打出来的。个人觉得没什么其他方法。
离线nanjinghu
只看该作者 3楼 发表于: 2008-10-27
兄弟,应该这样解决
OnKeyReleasedEvent()
{
  if( event->isRepeat() )
{
    event->ignore();
    return;
}
    show = false;
}
离线rockyluo

只看该作者 4楼 发表于: 2008-10-27
试着用下 QButton::setAutoRepeat( bool )
                                                                                                              我们要团结一心,秉承Linux的开源精神,共享Qt问题的解决方法!
离线guanxu

只看该作者 5楼 发表于: 2008-10-27
谢谢 nanjinghu 。对 Event 的认识又进了一步。
离线lipper
只看该作者 6楼 发表于: 2012-03-29
快速回复
限100 字节
 
上一个 下一个