0

我对使用 python 和 gtk 编程非常陌生。经过一天的谷歌搜索并尝试查找文档后,我想出了以下解决方案来对按下给定按钮做出反应:

from gi.repository import Gtk,Gdk

class BNWrestling(Gtk.Window):

    def __init__(self, bnt):
        self.connect("key_press_event",self.on_key_press)

    def on_key_press(self,widget,eventkey):
        keyval = eventkey.get_keyval()[1] #very ugly here
        if keyval == Gdk.KEY_Left:
            do_sth()

这段代码做了它应该做的,但是,我不确定这是否是它应该做的方式。尤其是我检索 keyval 的方式似乎并不那么优雅。有没有更好的方法?

感谢您对某些文档的建议或指导(我找不到任何文档)。

4

1 回答 1

1

您可以使用 keyval 名称(与没有前缀的 GDK_KEY_XXX 常量相同):

def on_key_press_event(self, widget, event, user_data=None):
    key = Gdk.keyval_name(event.keyval)
    if key == "Left":
        do_something()
        return True
    return False
于 2013-01-27T01:38:52.730 回答