我正在阅读官方的PyGObject教程,我在其中一个例子中发现了这个(无法解释的)行:
self.timeout_id = None
Run Code Online (Sandbox Code Playgroud)
(它__init__属于Gtk.Window-descendant类的功能;整个列表在这里).我不能谷歌呢; 这是为了什么?
您没有看到它被设置并在on_pulse_toggled中进一步使用?
它被赋予GObject.timeout_add的返回值,它添加了一个稍后调用的函数,可能是重复的(如本例所示):
self.timeout_id = GObject.timeout_add(100, self.do_pulse, None)
Run Code Online (Sandbox Code Playgroud)
如果您不希望再次调用此超时,则必须将其删除,并且要执行此操作,您需要创建超时的id:
GObject.source_remove(self.timeout_id)
Run Code Online (Sandbox Code Playgroud)