如何在 Tkinter 中使用停止按钮停止循环?
tkinterpythongui-programming更新于 2023/11/6 19:13:00
考虑一个循环运行进程的情况,我们希望在单击按钮时停止循环。通常,在编程语言中,要停止连续的 while 循环,我们使用 break 语句。然而,在 Tkinter 中,我们使用 after() 来代替 while 循环在循环中运行定义的函数。要中断连续循环,请使用可以更新的全局布尔变量来更改循环的运行状态。
对于给定的示例,
创建一个全局变量,其作用类似于循环中的标志。
定义两个按钮Start 和Stop,以启动和停止执行。
定义两个函数on_start()和on_stop(),以在循环中传递更新。
示例
# 导入所需的库 from tkinter import * from tkinter import ttk # 创建 tkinter 框架或窗口的实例 win = Tk() # 设置窗口大小 win.geometry("700x350") running = True # 定义一个函数,循环打印文本 def print_text(): if running: print("Hello World") win.after(1000, print_text) # 定义一个函数,启动循环 def on_start(): global running running = True # 定义一个函数,停止循环 def on_stop(): global running running = False canvas = Canvas(win, bg="skyblue3", width=600, height=60) canvas.create_text(150, 10, text="Click the Start/Stop to execute the Code", font=('', 13)) canvas.pack() # 添加一个按钮来启动/停止循环 start = ttk.Button(win, text="Start", command=on_start) start.pack(padx=10) stop = ttk.Button(win, text="Stop", command=on_stop) stop.pack(padx=10) # 运行一个函数在窗口中打印文本 win.after(1000, print_text) win.mainloop()
输出
运行上述代码,测试循环是否满足特定条件。
如果我们运行上述代码并单击"开始"按钮,它将在循环中打印"Hello World"文本,单击"停止"按钮即可停止该循环。
Hello World Hello World Hello World Hello World Hello World Hello World 进程以退出代码 0 结束