例如:import threading
import time
import Tkinter
class MyThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
print "Step Two"
time.sleep(20)
class MyApp(Tkinter.Tk):
def __init__(self):
Tkinter.Tk.__init__(self)
self.my_widgets()
def my_widgets(self):
self.grid()
self.my_button = Tkinter.Button(self, text="Start my function",
command=self.my_function)
self.my_button.grid(row=0, column=0)
def my_function(self):
print "Step One"
mt = MyThread()
mt.start()
while mt.isAlive():
self.update()
print "Step Three"
print "end"
def main():
my_app = MyApp()
my_app.mainloop()
if __name__ == "__main__":
main()
好吧,如果我开始我的例子,它的工作预期。我点击一个按钮,我的_功能启动,GUI响应。但是我已经读到我应该避免使用update()。所以,如果有人能解释为什么以及如何正确地等待线程,那就太好了?第二步是在一个线程中,因为它比第一步和第三步花费的时间要长得多,否则它会阻塞GUI。
我是Python新手,我试图编写我的第一个“程序”。也许我的想法是错误的,因为我不是很有经验。。。
谨致问候,
大卫。