【发布时间】:2016-04-24 13:06:37
【问题描述】:
什么时候发生?
这是我的代码:/ 以防我正在做不应该做的事情。我在 IDLE 的 python 2.7.8 中这样做。
import time
import Tkinter as tk
from Tkinter import StringVar
import threading
global root
root = tk.Tk()
x = tk.StringVar()
x.set('false')
def xval(*args):
try:
for i in range(0,9):
global x
print x.get()
if x.get()== 'false' :
print "x=false %d time"%i
time.sleep(1)
else:
print "waiting"
root.update()
except:
pass
def stop(event):
resume_btn.configure(state="normal")
global x
x.set('true')
print "execution stopped:%s"%x
def start(event):
global x
x.set('false')
print "execution started:%s"%x
xval()
root.title("GUI-Data Retrieval")
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, relief="raised")
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, relief="raised")
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()
【问题讨论】:
-
为了他人的利益,可以通过点击
Start再点击Stop来重现问题。至于修复,... -
为什么在按钮上使用
bind而不是command属性?这就是问题的根源。 -
@BryanOakley 哦.....终于非常感谢您的帮助...我快疯了...
标签: python-2.7 button tkinter