当Gtk.Entry处于焦点时检测按键

svi*_*eet 5 python gtk keypress gtk3

我试图制作一个Entry小部件,在按下Esc时清除它的内容.
这是我尝试过的 -

class MyWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self)
        editor = Gtk.Entry()
        self.add(editor)
Run Code Online (Sandbox Code Playgroud)

我不知道将小部件连接到什么.Esc是一个按键,但是当条目成为焦点时应该发生按键.我完全迷失了.

当Esc被按下并且它处于焦点时,请帮我做一个清除的条目.

ano*_*ard 8

您可以连接Gtk.Entry到"key-press-event"或/和"key-release-event"接收有关为条目小部件按下或释放的键的通知.当条目接收到必须关注的按键/释放事件时,将调用回调.要检查是否Escape按下了键,您可以使用传递给回调的事件.您可以检查KEYVAL(与关联Gdk.Event.KEY_PRESS和Gdk.Event.KEY_RELEASE).您可以使用它Gdk.KEY_*来检查按下或释放的键的值.您可以尝试以下方面的内容:

...
    def on_key_release(self, widget, ev, data=None):
        if ev.keyval == Gdk.KEY_Escape: #If Escape pressed, reset text
            widget.set_text("")
...
    def __init__(self):
        Gtk.Window.__init__(self)
        editor = Gtk.Entry()
        editor.connect("key-release-event", self.on_key_release)   
        self.add(editor)
Run Code Online (Sandbox Code Playgroud)

网上有相当数量的文件可以帮助您.
希望这可以帮助!