0
我正在学习用python从this进行Gtk编程。但我不明白在以下回调定义中widget
关键字的原因是什么?有人可以解释它做了什么吗?为什么在只能在stdout上打印的python回调函数(Gtk)中使用'widget'?
def on_button_clicked(self, widget):
print("Hello World")
我正在学习用python从this进行Gtk编程。但我不明白在以下回调定义中widget
关键字的原因是什么?有人可以解释它做了什么吗?为什么在只能在stdout上打印的python回调函数(Gtk)中使用'widget'?
def on_button_clicked(self, widget):
print("Hello World")
当点击按钮时,会执行on_button_clicked方法。发生这种情况时,窗口和按钮对象分别传递给方法self
和widget
。这在需要对按钮执行操作的情况下非常有用,例如获取状态或更改文本。
没有widget
参数,按钮对象将被传递给该方法,并且不会有一个参数来接收它,并且您将得到一个TypeError。
是否意味着任何对象的实例总是被传递给从该实例调用的所有回调函数? –
@DipanjanPatra是的,这就是为什么对象方法的第一个参数总是自我的原因。 – jmcampbell
我对PyGObject不是很熟悉;它没有提供传递回调数据的方法(这可能是第三个参数)? – andlabs