如何拦截特殊键盘事件?Gtk或Qt

发布于 2022-08-02 00:52:24 字数 256 浏览 16 评论 4

比如我在一个文本框中按c-a,目前两者都可以在键盘处理中获知c-a被按,但如何阻止c-a导致的全选效果?或者c-x导致的剪切效果。
Gtk中通过修改Bindings应该可以,但困惑的是如何获知有哪些Bindings?
Qt4是在基类中处理keypressevent中检查按键,子类重载此方法可以使这些键不被处理,不过就需要自己处理文字输入了……
谢谢。

[ 本帖最后由 Magicloud 于 2007-10-29 18:51 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

别把无礼当个性 2022-08-03 20:14:20

原帖由 zhyustar 于 2007-11-7 09:58 发表
请问斑竹key-press-event,我只能捕获一个按键的信号,如何能捕捉到Ctrl-A 这些二个键的信号

Control、Shift、 Alt 等属于 Modifier Keys,其状态反映在 GdkEventKey 的 state 成员。具体参见 GdkEventKey 的文档说明。

闻呓 2022-08-03 19:05:36

请问斑竹key-press-event,我只能捕获一个按键的信号,如何能捕捉到Ctrl-A 这些二个键的信号

浮世清欢 2022-08-03 16:16:05

原帖由 whyglinux 于 2007-10-29 20:36 发表
>> 比如我在一个文本框中按c-a,目前两者都可以在键盘处理中获知c-a被按,但如何阻止c-a导致的全选效果?或者c-x导致的剪切效果。
>> Gtk中通过修改Bindings应该可以,但困惑的是如何获知有哪些Bindings?

...

多谢版主答复,恍然大悟啊……

乖乖 2022-08-03 03:44:31

>> 比如我在一个文本框中按c-a,目前两者都可以在键盘处理中获知c-a被按,但如何阻止c-a导致的全选效果?或者c-x导致的剪切效果。
>> Gtk中通过修改Bindings应该可以,但困惑的是如何获知有哪些Bindings?

只要处理文本框的 key-press-event 信号即可。在其处理函数中检查是否有 Ctrl-A 或者 Ctrl-a 按下:如果有,让函数返回 TRUE;其余情况返回 FALSE 即可。屏蔽其它快捷键也是同样的处理。

>> Qt4是在基类中处理keypressevent中检查按键,子类重载此方法可以使这些键不被处理,不过就需要自己处理文字输入了……

只处理你感兴趣的按键,其它的 ignore()。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文