在Python 2.7中,如果我點擊一個按鈕,當一個循環運行IDLE停止工作,直到python走出循環。我附上我的整個代碼,因爲我不知道爲什麼會發生這種情況。按鈕不工作,直到當前循環結束於python
import time
import Tkinter as tk
from Tkinter import StringVar
import threading
x="False"
def xval(*args):
for i in range(0,9):
global x
if(x=="False"):
print "x=false %d time"%i
time.sleep(1)
def stop(event):
resume_btn.configure(state="normal")
global x
x ="True"
print "execution stopped:%s"%x
def start(event):
global x
x ="False"
print "execution started:%s"%x
xval()
root = tk.Tk()
th = threading.Event()
t = threading.Thread(target=xval,args=(th,))
t.deamon=True
t.start()
x_btn = tk.Button(root, text="Stop", background="Snow", width=20)
x_btn.grid(row=0, column=4, sticky="W", padx=20, pady=5)
x_btn.bind('<Button-1>',stop)
resume_btn = tk.Button(root, text="Start", background="Snow", width=20)
resume_btn.configure(state="disabled")
resume_btn.grid(row=0, column=6, sticky="W", padx=20, pady=5)
resume_btn.bind('<Button-1>',start)
root.mainloop()
這兩個按鈕在工作第一次去,但第二次沒有x的值精被更新時,我就停止,也沒有按鈕點擊作品直到蟒蛇出來的循環。有人可以告訴爲什麼會發生這種情況。
:/是否有可能不使用類? – YSR
班是禮貌。你必須學習禮貌@ YSR –
:D我知道,我當然會@BillalBEGUERADJ但我沒有在我的項目中使用它們,這裏需要這些代碼^ _ ^'這就是爲什麼我問是否可以在沒有類的情況下完成 – YSR