1
我想用開始按鈕創建一個簡單的Python GUI(在Tkinter中),在一個線程中運行一個while循環,並且停止按鈕來停止while循環。從tkinter gui停止python線程
我遇到了停止按鈕問題,一旦單擊開始按鈕,停止按鈕不會停止任何事情並凍結GUI。
見下面的代碼:
import threading
import Tkinter
class MyJob(threading.Thread):
def __init__(self):
super(MyJob, self).__init__()
self._stop = threading.Event()
def stop(self):
self._stop.set()
def run(self):
while not self._stop.isSet():
print "-"
if __name__ == "__main__":
top = Tkinter.Tk()
myJob = MyJob()
def startCallBack():
myJob.run()
start_button = Tkinter.Button(top,text="start", command=startCallBack)
start_button.pack()
def stopCallBack():
myJob.stop()
stop_button = Tkinter.Button(top,text="stop", command=stopCallBack)
stop_button.pack()
top.mainloop()
不知道如何解決這個問題?我相信這是微不足道的,必須做好幾千次,但我自己找不到解決方案。
感謝 大衛