Python Gtk 事件忽略

Python Gtk 事件忽略

我想忽略文本视图中的一些关键事件,现在我执行以下操作

def on_key_press_event(self,source,event):
    keyname = Gdk.keyval_name(event.keyval)
    if(keyname=="Return"):
            tv = self.builder.get_object('txtMsg')
            buf = tv.get_buffer()
            msg = buf.get_text(buf.get_start_iter(),buf.get_end_iter(),self)
            msg=msg.replace("\n","")
            buf.set_text(msg)

Python 中是否有与 Java 函数 event.consume() 等效的函数?

答案1

要阻止事件传播(除非已使用 设置了该事件connect_after),您可以运行

object.emit_stop_by_name(event_name)

例如,如果我像这样连接按键事件:

self.textview.connect("key-press-event", self.on_key_press)

我可以像这样阻止它传播:

def on_key_press(self, widget, event):
    self.textview.emit_stop_by_name("key-press-event")

相关内容