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

จะรันวนไม่สิ้นสุดใน Tkinter ได้อย่างไร?


ในการรัน 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()

ผลลัพธ์

เมื่อคุณเรียกใช้รหัสนี้ มันจะสร้างผลลัพธ์ต่อไปนี้ -

จะรันวนไม่สิ้นสุดใน Tkinter ได้อย่างไร?

คลิกปุ่ม "เริ่มวนซ้ำ" เพื่อเรียกใช้การวนซ้ำแบบไม่สิ้นสุดซึ่งจะพิมพ์ต่อไป "Infinite Loop!" หลังจากทุกวินาที คลิก "หยุดการวนซ้ำ" เพื่อหยุดการวนซ้ำที่ไม่สิ้นสุด