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