如何使用Tkinter中的停止按钮停止循环?

如何使用Tkinter中的停止按钮停止循环?

考虑在循环中运行一个进程,并且我们希望在单击按钮时停止循环。一般来说,在编程语言中停止连续的 while 循环,我们使用 break 语句。但是,在Tkinter中,我们使用 after() 来运行定义的函数以循环的形式运行,而不是使用 while 循环。要停止连续的循环,请使用全局布尔变量,该变量可以更新以更改循环运行状态。

对于给定的示例,

  • 创建一个全局变量,其工作方式类似于循环中的 flag

  • 定义两个按钮, StartStop ,以开始和停止执行。

  • 定义两个功能 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="单击Start/Stop执行代码", 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()
Python

输出

运行上述代码以测试某个条件的循环。

如何使用Tkinter中的停止按钮停止循环?

如果我们运行上述代码并单击Start按钮,它将打印“Hello World”文本,该文本可以通过单击“Stop”按钮停止。

Hello World
Hello World
Hello World
Hello World
Hello World

进程退出代码0
Python

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册