如何在 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 结束

相关文章