GTK:检查钥匙事件,包括换档钥匙

GTK:检查钥匙事件,包括换档钥匙,gtk,gdk,Gtk,Gdk,在我的应用程序中,我想用组合键检查GTK按键事件 我的代码:(在本例中是Python,但问题是语言无关的,我想) Gtk处理按键的方式是,实际按键(例如“a”)和shift键组合成大写字母a。因此,按下shift键时,数字签名键会被QWERTZ布局上的撇号键所取代。 此组合的event.keyval是39(撇号),而不是35(数字符号)。 因此,对于,我需要检查与numbersign相对应的大写字母,而不是numbersign,它在不同的键盘布局上可能不同,因此我无法硬编码 问题如下: >

在我的应用程序中,我想用组合键检查GTK按键事件

我的代码:(在本例中是Python,但问题是语言无关的,我想)

Gtk处理按键的方式是,实际按键(例如“a”)和shift键组合成大写字母a。因此,按下shift键时,数字签名键会被QWERTZ布局上的撇号键所取代。 此组合的event.keyval是39(撇号),而不是35(数字符号)。 因此,对于
,我需要检查与numbersign相对应的大写字母,而不是numbersign,它在不同的键盘布局上可能不同,因此我无法硬编码

问题如下:

>>> Gdk.keyval_to_upper(35)  # 35 is the Key Value for numbersign
35
>>> Gdk.keyval_is_upper(35)
True
>>> Gdk.keyval_is_lower(35)
True

我无法使用这些函数获得大写等效值。有没有关于如何获取组合的结果的想法,其中
keyval\u to\u upper()
失败了?

为什么不选择一个不含糊的键?@ntd因为在我的例子中,它只是有意义的:它是一个在标记语法中切换标题的快捷方式,它们被numbersigns遮住了,但我用ctrl-alt numbersign代替了Shift,这在我看来要好得多(至少在歧义方面)。请记住,在我的键盘上,我必须按四个键才能获得快捷键(我必须按Alt Gr才能获得#)。谢谢你指出这一点。我使用的是德国qwertz键盘,我并没有真正看其他键盘布局
>>> Gdk.keyval_to_upper(35)  # 35 is the Key Value for numbersign
35
>>> Gdk.keyval_is_upper(35)
True
>>> Gdk.keyval_is_lower(35)
True