Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีรันลูปไม่รู้จบ (Infinite Loop) ใน Tkinter

เพื่อรันลูปไม่รู้จบใน Tkinter ใช้เมธอด after เรียกเมธอดซ้ำๆ หลังช่วงเวลาที่กำหนด จนกว่าผู้ใช้จะหยุดลูป

ขั้นตอน

  • นำเข้าไลบรารี สร้าง instance ของ tkinter frame

  • กำหนดขนาด frame ด้วย win.geometry

  • สร้างฟังก์ชัน "infinite_loop" เรียกตัวเองซ้ำ (recursive) พิมพ์ข้อความบนหน้าต่าง

  • สร้างฟังก์ชัน start() และ stop() ควบคุม infinite_loop ตัวแปร global "condition" ใน start() ตั้ง condition=True ใน stop() ตั้ง condition=False

  • สร้างปุ่ม 2 ปุ่ม เรียก start() และ stop()

  • ใช้ after() เรียก infinite_loop ซ้ำทุก 1 วินาที

  • รัน mainloop

ตัวอย่าง

from tkinter import *

win = Tk()
win.geometry("700x350")

condition = True

def infinite_loop():
    if condition:
        Label(win, text="Infinite Loop!", font="Arial, 25").pack()
        win.after(1000, infinite_loop)

def start():
    global condition
    condition = True

def stop():
    global condition
    condition = False

Button(win, text="Start the Loop", font="Arial, 12", command=start).pack()
Button(win, text="Stop the Loop", font="Arial, 12", command=stop).pack()

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

ผลลัพธ์

วิธีรันลูปไม่รู้จบ (Infinite Loop) ใน Tkinter

กด "Start the Loop" เพื่อรันลูปไม่รู้จบ พิมพ์ "Infinite Loop!" ทุกวินาที กด "Stop the Loop" เพื่อหยุด