【发布时间】:2014-10-26 07:21:25
【问题描述】:
我有一个在按键上调用的函数,它将bg 更改为橙色,等待 1 秒然后将其更改为绿色。问题是按钮只等待一秒钟然后变为绿色。
为什么它跳过第一次颜色变化(我假设函数运行并且颜色变化的视觉方面依赖于返回到主循环,即主循环等待并且不改变(因此按钮颜色也是)直到函数结束)?有什么方法可以解决这个问题(Python 3.3 窗口)?
这是一个例子:
import tkinter as tk
from time import sleep
r = tk.Tk()
l = tk.Label(text = 'press f to make button flash')
l.pack()
b = tk.Button(text = 'useless button')
b.pack()
def flash(event):
b.config(bg = 'orange')
sleep(1)
b.config(bg = 'green')
r.bind("<KeyPress-f>", flash)
r.mainloop()
提前致谢(对于错误的变量名,我们深表歉意)。
【问题讨论】:
标签: python python-3.x tkinter