2012-09-08 36 views
1

我讀通過官方PyGObject教程中,我發現這個(原因不明)線的一個例子:什麼是GTK中的timeout_id?

self.timeout_id = None 

(這是一個Gtk.Window -descendant類的__init__功能以內,整體上市是here)。我無法谷歌它;它是爲了什麼?

回答

5

您沒有看到它被設置並在on_pulse_toggled中進一步使用?

它被賦予GObject.timeout_add的返回值,這(在這種情況下等)增加了在以後的時間間隔被調用的函數,可能重複:

 self.timeout_id = GObject.timeout_add(100, self.do_pulse, None) 

當你想這個超時不所以你必須刪除它,爲此,你需要創建超時的ID:

 GObject.source_remove(self.timeout_id) 
+0

謝謝,愚蠢的我! (我沒有看到它,因爲我沒有進一步閱讀。) 我猜對了,一般情況下,'Gtk.Window'類中沒有'timeout_id'「屬性」,在這種情況下,它本質上是(類似於)用戶定義的全局變量? – mbork

+1

不,它不是全局變量。它是一個實例變量,一個對象成員。 gtk.Window沒有timeout_id實例變量,但即使它在這個子類中被覆蓋。 –

+0

再次感謝。我知道這不是一個全球變數,我試圖說它扮演了一個角色(在這個簡短的程序中只有一個'Gtk.Window'對象)。 – mbork

相關問題