• 5023阅读
  • 1回复

[讨论]关于QT中的KeyPressEvent()事件 [复制链接]

上一主题 下一主题
离线itstudy
 
只看楼主 倒序阅读 楼主  发表于: 2012-07-11
1.前段时间做过一个小需求:定义快捷键<- -> 以及数字键0 1 2 3 4 来定位MainWindow中的一组子控件
  可是发现重写了MainWindow中的KeyPressEvent()后 如果其没有处于焦点状态 则其按键是无效的
  必须使之处于焦点状态 才能对按键做出反应。后来想的办法有:
  (1)监视所有的子控件的事件 发现是所定义的快捷键 则交给MainWindow处理 但这样很麻烦 每次new一个子控件 都需要installFilter()下 还有 我发现QAxWidget这个子控件并不会转发事件
(2)想重写所有的子控件的keypressEvent() 将获取的Event()发送给parent 也是很麻烦

2.后来使用了Win32中的键盘钩子完美实现了该功能 但是 我想知道 QT中对按键处理真就真么麻烦吗?
离线roywillow

只看该作者 1楼 发表于: 2012-07-11
你可以看看bool QCoreApplication::notify ( QObject * receiver, QEvent * event ) 的文档或许有帮助
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个