为什么在python回调函数(Gtk)中使用'widget'只能在stdout上打印?

时间:2017-07-19 18:06:05

标签: python callback gtk pygobject gobject-introspection

我正在使用来自this的python学习Gtk编程。但我无法理解以下回调定义中widget关键字的原因是什么?有人可以解释它的作用吗?

def on_button_clicked(self, widget):
    print("Hello World")

1 个答案:

答案 0 :(得分:2)

单击该按钮时,将执行on_button_clicked方法。发生这种情况时,窗口和按钮对象将分别作为selfwidget传递给方法。这在需要对按钮执行某些操作的情况下非常有用,例如获取其状态或更改其文本。

如果没有widget参数,按钮对象将被传递给方法,并且没有接收它的参数,你会得到一个TypeError。