嗨我想知道你是否可以做到这一点你可以一次按下一个按钮?
像:
from Tkinter import *
tkwin = Tk()
def delayedDoSomethings():
for i in range(1,10000000):
print 'hi',i
def delayedDoSomething():
for i in range(1,10000000):
print i
a = Button(tkwin, text="Go", command=delayedDoSomething)
a.pack()
b = Button(tkwin, text="Go hi", command=delayedDoSomethings)
b.pack()
tkwin.mainloop()
并且我可以点击“go”然后“去嗨”但我不能因为窗口冻结直到完成。是否有人知道如何制作它,以便你可以一次按下多一个按钮?
答案 0 :(得分:2)
这里你想要的是使用线程。线程允许你同时执行多段代码(或者它们至少出现同时执行)
在delayedDoSomethings()
内,你需要产生一个执行实际工作的新线程,这样你就可以在主线程中将控制权返回给Tkinter。
你会在delayedDoSomething()
中做同样的事情。
以下是您可以在delayedDoSomethings()
中使用的一些实际代码def delayedDoSomethings():
def work():
for i in rance(1, 10000000):
print 'hi',i
import thread
thread.start_new_thread(separateThread, ()) #run the work function in a separate thread.
Here是Python内置线程模块的文档,它将非常有用。