• 5466阅读
  • 9回复

可否在main.cpp中处理键盘按键响应 [复制链接]

上一主题 下一主题
离线piggyli
 
只看楼主 倒序阅读 楼主  发表于: 2010-01-25
小弟做的一个界面程序,由多个自定义的QWidget组成,我在main.cpp中生成这些自定义的QWidget,然后通过键盘按键控制这些QWidget,我想统一管理整个界面的所有键盘按键响应,但在main.cpp中获得不到keyPressEventt的事件。望高手指点迷津~~~
离线benbenmajia

只看该作者 1楼 发表于: 2010-01-25
说清楚一点,没看明白
安然.....
离线piggyli
只看该作者 2楼 发表于: 2010-01-25
一个界面由多个QWidget组成,我想得到整个界面的所有按键事件,不管Focus在哪个QWidget上。这些QWidge都是在main.cpp中show的,我想在main.cpp中获得keyPressEvent。
离线yangfanxing
只看该作者 3楼 发表于: 2010-01-25
引用第2楼piggyli于2010-01-25 10:20发表的  :
一个界面由多个QWidget组成,我想得到整个界面的所有按键事件,不管Focus在哪个QWidget上。这些QWidge都是在main.cpp中show的,我想在main.cpp中获得keyPressEvent。

我犯傻地说一句:这是在开玩笑吗???
PHPWind好恶心。。。不想看这种界面。。。
离线benbenmajia

只看该作者 4楼 发表于: 2010-01-25
无焦点的话在QT中我没有仔细看有没有这样的函数,但是可以用c++的hook()接口,不过我不建议你用这个函数,太危险,你可以搜索一下看看,你也可以在看看QT的接口中该怎么实现这个,QEvent能不能实现这样的功能我不敢乱说,等高人来看看吧,如果必须的话那就在每个widget中都实现keypressevent事件
安然.....
离线piggyli
只看该作者 5楼 发表于: 2010-01-25
thanks~~~
我想获得多个QWidget组成的界面的按键事件,是说只能在某一个QWidget中获得keypressevent事件,没法把多个QWidget的事件合到一起吗?QApplication可以获得keypressevent事件吗?我可不可以把这些QWidget都整合到一个新的QWidget中,通过新QWidget的keypressevent事件处理按键响应。或者用事件过滤器行不行。
大家帮帮忙啦~~~
离线yangfanxing
只看该作者 6楼 发表于: 2010-01-25
把这些QWidget都整合到一个新的QWidget中~~~那就是剩一个窗口了~这个有什么不可以的。

或者每个窗口都写一样(或者说很类似的key事件),这样任意一个窗口获得输入的话把信号发射给其它各个窗口并相应。。。这个信号发射接收什么的自己组织下吧~~~
PHPWind好恶心。。。不想看这种界面。。。
离线piggyli
只看该作者 7楼 发表于: 2010-01-25
QApplication可以接收键盘事件吗?
离线water_wf

只看该作者 8楼 发表于: 2010-01-25
继承自qobject都可以接受消息
查看installEventFilter()
离线piggyli
只看该作者 9楼 发表于: 2010-01-25
引用第8楼water_wf于2010-01-25 16:56发表的  :
继承自qobject都可以接受消息
查看installEventFilter()

我看有文章说“在aApp上安装一个事件过滤器,它会监视程序中发送到所有对象的所有事件。”
没有用过installEventFilter(),有例子吗?
是要在每个QWidget里都为qApp安装过滤器吗?
快速回复
限100 字节
 
上一个 下一个