ในการรัน infinite loop ใน Tkinter เราจะใช้เมธอด after เพื่อเรียกเมธอดแบบเรียกซ้ำหลังจากช่วงเวลาที่กำหนด จนกว่าผู้ใช้จะตัดสินใจหยุดการวนซ้ำ มาดูตัวอย่างง่ายๆ และดูวิธีการเริ่มต้นและหยุดการวนซ้ำที่ไม่สิ้นสุด
ขั้นตอน -
-
นำเข้าไลบรารีที่จำเป็นและสร้างอินสแตนซ์ของเฟรม tkinter
-
กำหนดขนาดของเฟรมโดยใช้วิธี win.geometry
-
ถัดไป สร้างฟังก์ชันที่ผู้ใช้กำหนด "infinite_loop" ซึ่งจะเรียกตัวเองซ้ำๆ และพิมพ์คำสั่งบนหน้าต่าง
-
กำหนดฟังก์ชันที่ผู้ใช้กำหนดเองอีกสองฟังก์ชัน start() และ stop() เพื่อควบคุม infinite_loop กำหนดตัวแปรส่วนกลาง "เงื่อนไข" Inside start(), set condition=True and inside stop(), set condition=False.
-
สร้างปุ่มสองปุ่มเพื่อเรียกใช้ฟังก์ชัน start() และ stop()
-
ใช้เมธอด after() เพื่อเรียก infinite_loop ซ้ำทุก ๆ 1 วินาที
-
สุดท้าย ให้เรียกใช้ mainloop ของหน้าต่างแอปพลิเคชัน
ตัวอย่าง
# 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()
ผลลัพธ์
เมื่อคุณเรียกใช้รหัสนี้ มันจะสร้างผลลัพธ์ต่อไปนี้ -
คลิกปุ่ม "เริ่มวนซ้ำ" เพื่อเรียกใช้การวนซ้ำแบบไม่สิ้นสุดซึ่งจะพิมพ์ต่อไป "Infinite Loop!" หลังจากทุกวินาที คลิก "หยุดการวนซ้ำ" เพื่อหยุดการวนซ้ำที่ไม่สิ้นสุด