![Python Gtk 事件忽略](https://linux22.com/image/820718/Python%20Gtk%20%E4%BA%8B%E4%BB%B6%E5%BF%BD%E7%95%A5.png)
我想忽略文本视图中的一些关键事件,现在我执行以下操作
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")