我是使用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的方式似乎并不那么优雅。 有更好的方式吗?
感谢您对某些文档的建议或指示(我找不到任何文档)。
答案 0 :(得分: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