Python 当回调时间过长时,如何使PyGTK小部件快速响应?
我在_init回调函数中执行了一个耗时的处理。因此,在GUI上,当我激活check按钮时,程序冻结,同时处理运行到完成,然后出现复选标记,执行恢复正常Python 当回调时间过长时,如何使PyGTK小部件快速响应?,python,gtk,pygtk,Python,Gtk,Pygtk,我在_init回调函数中执行了一个耗时的处理。因此,在GUI上,当我激活check按钮时,程序冻结,同时处理运行到完成,然后出现复选标记,执行恢复正常 self.init = gtk.CheckButton("Init", False) self.init.connect("toggled", self._init) def _init(self, w): .... 如何使GUI在处理过程中更具响应性 有没有办法让GUI在开始时更改复选框的状态,然后进入重循环?在处理程序中,将init的其余
self.init = gtk.CheckButton("Init", False)
self.init.connect("toggled", self._init)
def _init(self, w):
....
如何使GUI在处理过程中更具响应性
有没有办法让GUI在开始时更改复选框的状态,然后进入重循环?在处理程序中,将init的其余部分注册为空闲处理程序并返回<代码>gtk.怠速添加IIRC。这样,它将在处理gui事件后运行。查看文档,查看需要返回的值,以便该函数不会再次启动。您有几种解决方案:
我给你的例子是C语言的,但是python的精神是一样的。感谢liberforce提供了详细的答案。方法3是最快实现的方法。它做得很好。