在 Tkinter 中随时间执行函数
在事件驱动编程中,应用程序连续运行,在事件发生时响应事件。事件驱动编程不是按顺序执行函数,而是将函数放在队列中以在特定时间执行。
案例研究:闪烁矩形动画
创建闪烁矩形在 Tkinter 中的动画中,我们可以为动画定义一个函数并安排它定期运行。以下是解决该问题的方法:
1.定义动画函数:
def blink(rect, canvas): current_color = canvas.itemcget(rect, "fill") new_color = "red" if current_color == "white" else "white" canvas.itemconfigure(rect, fill=new_color)
此函数在红色和白色之间切换矩形的颜色。
2.安排函数:
为了使矩形重复闪烁,我们安排闪烁函数在指定的时间间隔后运行:
root.after(1000, blink, rect, canv) root.after(2000, blink, rect, canv) root.after(3000, blink, rect, canv)
一秒、两秒和三秒后,矩形的颜色会相应改变。
3.迭代动画(可选):
要使动画无限期地运行,我们可以在其内部调用眨眼函数:
def blink(rect, canvas): ... canvas.after(1000, blink, rect, canvas)
这种方法无限期地继续动画直到停止满足条件(例如,单击按钮)。
4.基于类的方法(可选):
对于较大的程序,建议将代码组织为一个类:
from tkinter import * classMyApp(Tk): def __init__(self): ... self.start_button = Button(self, text="start blinking", command=self.start_blinking) ... def start_blinking(self): ... canvas.after(1000, self.blink)
这种方法将动画逻辑封装在一个类中,使其更易于管理。
以上是如何使用 Tkinter 的'after()”方法创建闪烁矩形动画?的详细内容。更多信息请关注PHP中文网其他相关文章!