• 1126阅读
  • 6回复

Qt窗体如何比控件优先获取键盘事件,即使光标在lineEdit里面 [复制链接]

上一主题 下一主题
离线ustone
 

只看楼主 倒序阅读 楼主  发表于: 2022-01-27
Qt窗体如何比控件优先获取键盘事件,即使光标在lineEdit里面按键也能优先触发窗体的void keyPressEvent(QKeyEvent *e)?

离线20091001753

只看该作者 1楼 发表于: 2022-01-27
可以,事件过滤器
(づ ̄ 3 ̄)づ
离线ustone

只看该作者 2楼 发表于: 2022-01-27
回 20091001753 的帖子
20091001753:可以,事件过滤器 (2022-01-27 18:41) 

如果窗体控件很多呢?
离线20091001753

只看该作者 3楼 发表于: 2022-01-28
比如,你想用 a 窗口 过滤 b 窗口(控件)的事件:
代码就是:
b->installEventFilter(a);

这种方式是允许你过滤很多很多控件的。
(づ ̄ 3 ̄)づ
离线ustone

只看该作者 4楼 发表于: 2022-01-28
回 20091001753 的帖子
20091001753:比如,你想用 a 窗口 过滤 b 窗口(控件)的事件:
代码就是:
b->installEventFilter(a);
这种方式是允许你过滤很多很多控件的。
....... (2022-01-28 13:38) 

比如说a窗口有一些设置控件,还有一个游戏画面,要用方向键操作,无论输入光标在哪里,a窗口的void keyPressEvent(QKeyEvent *e)要优先获得方向按键,这个怎么截获?
离线20091001753

只看该作者 5楼 发表于: 2022-01-28
若只是单纯的键盘事件响应,可以用 QShortcut 定义快捷键。
(づ ̄ 3 ̄)づ
离线ustone

只看该作者 6楼 发表于: 2022-01-29
回 20091001753 的帖子
20091001753:若只是单纯的键盘事件响应,可以用 QShortcut 定义快捷键。 (2022-01-28 20:47) 

也是一个办法,不过有点非常规。
快速回复
限100 字节
 
上一个 下一个