Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách dừng vòng lặp bằng nút Stop trong Tkinter


Trong Tkinter, thay vì vòng lặp while thông thường, ta dùng after() để lặp lại hàm. Để dừng, dùng biến boolean toàn cục làm cờ (flag).

  • Tạo biến toàn cục running = True.
  • Hàm print_text() in văn bản và gọi lại mình sau 1 giây nếu running True.
  • Nút Start đặt running = True, nút Stop đặt running = False.

Ví dụ minh họa

from tkinter import *
from tkinter import ttk

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="Nhấn Start/Stop để chạy/dừng vòng lặp", font=('', 13))
canvas.pack()

ttk.Button(win, text="Start", command=on_start).pack(padx=10)
ttk.Button(win, text="Stop", command=on_stop).pack(padx=10)

win.after(1000, print_text)
win.mainloop()

Kết quả đầu ra

Giao diện có nút Start/Stop.

Cách dừng vòng lặp bằng nút Stop trong Tkinter

Nhấn Start in "Hello World" lặp lại, nhấn Stop để dừng.

Hello World
Hello World
Hello World
Hello World
Hello World
Process finished with exit code 0