我试图创建一个Entry小部件,在按下Esc时清除它的内容 这是我尝试过的 -
class MyWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self)
editor = Gtk.Entry()
self.add(editor)
我不知道将小部件连接到的内容。 Esc是一个按键,但是当条目成为焦点时应该发生按键。我完全迷失了。
请帮助我制作一个在按下Esc并清除焦点时清除的条目。
答案 0 :(得分: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)
网上有相当数量的文件可以帮助您 希望这有帮助!