• 8719阅读
  • 13回复

[提问]QWidget::keypressEvent() [复制链接]

上一主题 下一主题
离线itstudy
 
只看楼主 倒序阅读 楼主  发表于: 2012-06-26
令我头痛的是:为啥不响应键盘按键事件呢?这里面有什么玄机吗? 请求高手们解答  小弟不胜感激!
确实不如MFC来的直接
离线roywillow

只看该作者 1楼 发表于: 2012-06-26
大部分事件(我不敢肯定所有事件)会首先传递到有焦点的QWidget中,并交给它来处理
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jdwx

只看该作者 2楼 发表于: 2012-06-26
引用第1楼roywillow于2012-06-26 19:39发表的  :
大部分事件(我不敢肯定所有事件)会首先传递到有焦点的QWidget中,并交给它来处理

就是这样,QWidget默认没有焦点,不会有按键事件。
widget->setFocusPolicy ( Qt::FocusPolicy policy )

发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线wayne

只看该作者 3楼 发表于: 2012-06-27
也有可能是输入法的中英文状态导致的。
离线itstudy
只看该作者 4楼 发表于: 2012-06-27
回 2楼(jdwx) 的帖子
那么我想使我的MainWidget始终能处理keypress事件 是不是都要重写其上所有子控件的event()?然后使之向父窗体传送?
离线jdwx

只看该作者 5楼 发表于: 2012-06-27
回 4楼(itstudy) 的帖子
有另外一个办法,装事件监视器。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线itstudy
只看该作者 6楼 发表于: 2012-06-27
回 5楼(jdwx) 的帖子
哦 mainwidget上所有的子窗体都要被监视啊 晕 Qt实现一个keypress这么麻烦哪?
离线roywillow

只看该作者 7楼 发表于: 2012-06-27
或者QShortcut?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线jdwx

只看该作者 8楼 发表于: 2012-06-27
Qt在这点上确实不如微软,VB只要在属性里打个勾就行。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线itstudy
只看该作者 9楼 发表于: 2012-06-27
eventFilter()居然某些事件也不响应  郁闷   算了 用钩子吧
离线jdwx

只看该作者 10楼 发表于: 2012-06-27
回 9楼(itstudy) 的帖子
这个没发现,说说是哪个事件
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线itstudy
只看该作者 11楼 发表于: 2012-06-27
谢谢兄弟们 我用钩子完美实现了一个MainWidget监控keypressEvent() 无论该窗体是否处于焦点之中
呵呵  谢谢你们!
离线zhy282289
只看该作者 12楼 发表于: 2012-07-01
不明白你这样的意图不过你可以在qapplication.notify()可以监视pressEvent不必用钩子,而且用了钩子不可移植
为什么我脸这么胖~
离线zhy282289
只看该作者 13楼 发表于: 2012-07-02
回 1楼(roywillow) 的帖子
所有事件都会先到qcoreapplication::notyfy(); 妹子我回来了
为什么我脸这么胖~
快速回复
限100 字节
 
上一个 下一个