从effbot.org文档中,我们有关于该update功能的以下内容:
处理所有挂起事件,调用事件回调,完成任何挂起的几何管理,根据需要重绘小部件,以及调用所有挂起的空闲任务.应谨慎使用此方法,因为如果从错误的位置(例如,从事件回调中调用,或者从可以以任何方式从事件回调调用的函数等)调用它,可能会导致非常讨厌的竞争条件).如有疑问,请
update_idletasks改用.
另一方面,这是关于update_idletasks功能:
调用所有待处理的空闲任务,而不处理任何其他事件.这可用于在必要时执行几何管理和重绘小部件,而无需调用任何回调.
据我所知,两者都调用所有挂起的空闲任务,完成任何挂起的几何管理并根据需要重绘小部件.我看到的唯一区别是update 处理所有挂起事件并调用事件回调.update我想这就是为什么我们不应该在一个甚至回调中打电话.
然而,我所看到的例子,其中update_idletasks并update使用一个接一个,我不能明白其中的道理,因为从理论上讲update做的一切update_idletasks一样.
这些待处理事件究竟是什么以及文档正在讨论的空闲任务?有什么区别和关系?
话虽这么回答,在我应该使用什么是真正的情况update了update_idletasks?具体例子也是值得赞赏的.