如何在GTK +中键入文本时禁用加速器

时间:2014-04-01 10:09:03

标签: python gtk

我使用了某些与某些热键连接的预定义加速器。是否有可能暂时禁用它们?我不想更改热键,以免混淆用户。在键入组合框时激活加速器,这实在是不可接受。

2 个答案:

答案 0 :(得分:1)

据我所知,你无法禁用它们。它们将接收焦点窗口未消耗的任何键击。

答案 1 :(得分:1)

I asked this again on the GTK+ mailing list那里的人们有两个建议来自他们自己的项目的实际实现(这里没有链接,但你可以检查线程,如果你想看到它们):

  1. 拦截并处理所有键按下,从而覆盖GTK +的正常机制,并允许您为加速器设置例外。
  2. 在文本编辑窗口小部件获得焦点时,手动删除加速器列表,然后在窗口小部件失去焦点时再次添加它们。在GTK + 3中,这是通过gtk_application_set_accels_for_action完成的。
  3. 在我链接的主题中,您可以找到两种方法的示例代码。第二种方法甚至在GTK + 2中有一个例子,在GTK + 3中有一个例子。

相关问题