0

私はpythonとgtkを使ったプログラミングにとても慣れていません。グーグルで1日調べてドキュメントを見つけようとした後、特定のボタンを押したときに反応するための次の解決策を思いつきました。

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 に答える