2014-04-01 33 views
11

输入文字时,我使用的是与某些热键连接一些预定义的加速器禁用加速器。是否有可能暂时禁用它们?我不想更改热键,以免混淆用户。在组合框中键入时会激活加速器,这实际上是不可接受的。如何在GTK +

+0

你在加速器和你输入的内容字符的例子吗? – drahnr

+0

这不再是一个问题,但要问你的问题为主窗口连接定义的加速器与应用程序的某些功能按“S”键。我试图以某种方式禁用用户在文本框中输入内容时的快捷方式。 – user3484510

+0

关于赏金的附注:问题在标签中有“python”,但就我而言,这实在是一个GTK +问题,所以任何语言都应该没问题。 – pmos

回答

1

据我知道你不能禁用它们。他们将收到任何未被关注的窗口消耗的关键笔画。

1

I asked this again on the GTK+ mailing list,人们也必须与现实生活的实现来自于自己的项目(这里不挂,但你可以检查线程,如果你想看到他们)两个建议:

  1. 拦截和处理全部按键,因此覆盖GTK +的正常机制,并允许您为加速器制定例外。
  2. 有你手动删除时,文本编辑控件获得焦点,然后再添加它们当控件失去焦点加速器的列表。在GTK + 3中,这是通过gtk_application_set_accels_for_action完成的。

在线程我联系,你可以找到示例代码这两种方法。第二种方法即使在GTK + 2,一个在GTK + 3