Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để chạy một vòng lặp vô hạn trong Tkinter?

Để chạy một vòng lặp vô hạn trong Tkinter, chúng ta sẽ sử dụng phương thức after để gọi đệ quy một phương thức sau một khoảng thời gian xác định cho đến khi người dùng quyết định dừng vòng lặp. Hãy lấy một ví dụ đơn giản và xem cách bắt đầu và dừng một vòng lặp vô hạn.

Các bước -

  • Nhập các thư viện cần thiết và tạo một phiên bản của khung tkinter.

  • Đặt kích thước của khung bằng phương pháp win.geometry.

  • Tiếp theo, tạo một hàm do người dùng định nghĩa "finity_loop "sẽ gọi chính nó một cách đệ quy và in một câu lệnh trên cửa sổ.

  • Định nghĩa thêm hai hàm do người dùng định nghĩa, start () và stop (), để điều khiển vô_lục_loop. Xác định một biến toàn cục "điều kiện". Bên trong start (), đặt điều kiện =Đúng và bên trong stop (), đặt điều kiện =Sai.

  • Tạo hai nút để gọi hàm start () và stop ().

  • Sử dụng phương thức after () để gọi đệ quyfinity_loop sau mỗi 1 giây.

  • Cuối cùng, chạy mainloop của cửa sổ ứng dụng.

Ví dụ

# Import the required library
from tkinter import *

# Create an instance of tkinter frame
win=Tk()

# Set the size of the Tkinter window
win.geometry("700x350")

# Define a function to print something inside infinite loop
condition=True
def infinite_loop():
   if condition:
      Label(win, text="Infinite Loop!", font="Arial, 25").pack()

   # Call the infinite_loop() again after 1 sec win.after(1000, infinite_loop)

def start():
   global condition
   condition=True

def stop():
   global condition
   condition=False

# Create a button to start the infinite loop
start = Button(win, text= "Start the Loop", font="Arial, 12", command=start).pack()
stop = Button(win, text="Stop the Loop", font="Arial, 12", command=stop).pack()

# Call the infinite_loop function after 1 sec.
win.after(1000, infinite_loop)

win.mainloop()

Đầu ra

Khi bạn chạy mã này, nó sẽ tạo ra kết quả sau -

Làm thế nào để chạy một vòng lặp vô hạn trong Tkinter?

Nhấp vào nút "Bắt đầu vòng lặp" để chạy vòng lặp vô hạn sẽ tiếp tục in "Vòng lặp vô hạn!" sau mỗi giây. Nhấp vào "Dừng vòng lặp" để dừng vòng lặp vô hạn.