如何拦截特殊键盘事件?Gtk或Qt
比如我在一个文本框中按c-a,目前两者都可以在键盘处理中获知c-a被按,但如何阻止c-a导致的全选效果?或者c-x导致的剪切效果。
Gtk中通过修改Bindings应该可以,但困惑的是如何获知有哪些Bindings?
Qt4是在基类中处理keypressevent中检查按键,子类重载此方法可以使这些键不被处理,不过就需要自己处理文字输入了……
谢谢。
[ 本帖最后由 Magicloud 于 2007-10-29 18:51 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Control、Shift、 Alt 等属于 Modifier Keys,其状态反映在 GdkEventKey 的 state 成员。具体参见 GdkEventKey 的文档说明。
请问斑竹key-press-event,我只能捕获一个按键的信号,如何能捕捉到Ctrl-A 这些二个键的信号
多谢版主答复,恍然大悟啊……
>> 比如我在一个文本框中按c-a,目前两者都可以在键盘处理中获知c-a被按,但如何阻止c-a导致的全选效果?或者c-x导致的剪切效果。
>> Gtk中通过修改Bindings应该可以,但困惑的是如何获知有哪些Bindings?
只要处理文本框的 key-press-event 信号即可。在其处理函数中检查是否有 Ctrl-A 或者 Ctrl-a 按下:如果有,让函数返回 TRUE;其余情况返回 FALSE 即可。屏蔽其它快捷键也是同样的处理。
>> Qt4是在基类中处理keypressevent中检查按键,子类重载此方法可以使这些键不被处理,不过就需要自己处理文字输入了……
只处理你感兴趣的按键,其它的 ignore()。