Hãy xem xét một trường hợp chạy một tiến trình trong một vòng lặp và chúng ta muốn dừng vòng lặp bất cứ khi nào một nút được nhấp vào. Nói chung, trong các ngôn ngữ lập trình, để dừng trong khi liên tục vòng lặp, chúng tôi sử dụng break tuyên bố. Tuy nhiên, ở Tkinter, thay cho while vòng lặp, chúng tôi sử dụng after () để chạy chức năng đã xác định trong một vòng lặp. Để phá vỡ vòng lặp liên tục, hãy sử dụng biến Boolean toàn cục có thể được cập nhật để thay đổi trạng thái đang chạy của vòng lặp.
Đối với ví dụ đã cho,
-
Tạo một biến toàn cục hoạt động tương tự như cờ trong một vòng lặp.
-
Xác định hai nút, Bắt đầu và Dừng lại , để bắt đầu và dừng quá trình thực thi.
-
Xác định hai hàm, on_start () và on_stop () , để cung cấp bản cập nhật trong vòng lặp.
Ví dụ
# Import the required libraries from tkinter import * from tkinter import ttk # Create an instance of tkinter frame or window win = Tk() # Set the size of the window win.geometry("700x350") running = True # Define a function to print the text in a loop def print_text(): if running: print("Hello World") win.after(1000, print_text) # Define a function to start the loop def on_start(): global running running = True # Define a function to stop the loop 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() # Add a Button to start/stop the loop 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) # Run a function to print text in window win.after(1000, print_text) win.mainloop()
Đầu ra
Chạy đoạn mã trên để kiểm tra vòng lặp cho một điều kiện nhất định.
Nếu chúng ta chạy mã trên và nhấp vào nút Bắt đầu, thì nó sẽ in văn bản "Hello World" trong một vòng lặp có thể dừng lại bằng cách nhấp vào nút "Dừng".
Hello World Hello World Hello World Hello World Hello World Process finished with exit code 0