我是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
那麼,當程序沒有做別的事情時,你希望它每秒運行數千次?它是否真的需要經常運行,還是每秒只能運行幾次?讓它在應用程序閒置時連續運行很少比僅僅每秒調用幾次更有用。 –