我是Tkinter的新手,所以我很抱歉,如果这很容易,但我已经搜索了几个小时,并且无法弄清楚。我想要做的是在主循环闲置后,我总是想调用checkForGroupUpdates()函数。当我运行下面的代码时,它只运行一次。每当主循环闲置时我都无法弄清楚它的运行情况。我很感激帮助。Tkinter只会打电话给after_idle一次
from Tkinter import *
import random
class Network(Frame):
""" Implements a stop watch frame widget. """
def __init__(self, parent=None, **kw):
Frame.__init__(self, parent, kw)
self.makeWidgets()
def makeWidgets(self):
""" Make the time label. """
self._canvas = Canvas(self, width=600, height=400)
self._canvas.pack()
def checkForGroupUpdates(self):
print "checking"
h=0
this=10
while this>.0001:
this=random.random()
print h
h=h+1
print "checked"
def main():
root = Tk()
nw = Network(root)
nw.pack(side=TOP)
root.after_idle(nw.checkForGroupUpdates)
root.mainloop()
if __name__ == '__main__':
main()
你是什么意思“每次主循环空闲”?大部分时间空闲,除了点击按钮时。 –
是的,理想情况下,我希望上述程序基本上可以持续运行checkForGroupUpdates(),因为大部分时间主应用程序应该处于空闲状态。我希望checkForGroupUpdates()在每次主循环闲置时运行。 – user1763510
那么,当程序没有做别的事情时,你希望它每秒运行数千次?它是否真的需要经常运行,还是每秒只能运行几次?让它在应用程序闲置时连续运行很少比仅仅每秒调用几次更有用。 –