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

ฉันจะสร้าง GUI ที่อัปเดตโดยอัตโนมัติโดยใช้ Tkinter ใน Python ได้อย่างไร


หน้าต่าง GUI มีการควบคุมหลายอย่าง เช่น ป้ายกำกับ ปุ่ม กล่องข้อความ ฯลฯ บางครั้งเราอาจต้องการให้เนื้อหาในการควบคุมของเรา เช่น ป้ายกำกับอัปเดตโดยอัตโนมัติในขณะที่เรากำลังดูหน้าต่าง

เราสามารถใช้ after() เพื่อเรียกใช้ฟังก์ชันหลังจากช่วงเวลาหนึ่ง ตัวอย่างเช่น 1,000 มิลลิวินาทีหมายถึง 1 วินาที ฟังก์ชันที่เราเรียกใช้อย่างต่อเนื่องหลังจากผ่านไประยะหนึ่งจะอัปเดตข้อความหรือการอัปเดตใดๆ ที่คุณต้องการให้เกิดขึ้น

เรามีป้ายบนหน้าต่างของเรา เราต้องการให้ข้อความของฉลากอัปเดตโดยอัตโนมัติหลังจากผ่านไป 1 วินาที เพื่อให้ตัวอย่างง่าย สมมติว่าเราต้องการให้ป้ายกำกับแสดงตัวเลขระหว่าง 0 ถึง 1,000 เราต้องการให้ตัวเลขนี้เปลี่ยนทุกๆ 1 วินาที

เราสามารถทำได้โดยกำหนดฟังก์ชันที่จะเปลี่ยนข้อความของป้ายกำกับเป็นตัวเลขสุ่มระหว่าง 0 ถึง 1000 เราสามารถเรียกใช้ฟังก์ชันนี้อย่างต่อเนื่องหลังจากช่วงเวลา 1 วินาทีโดยใช้ after()

ตัวอย่าง

from Tkinter import *
from random import randint
root = Tk()
lab = Label(root)
lab.pack()

def update():
   lab['text'] = randint(0,1000)
   root.after(1000, update) # run itself again after 1000 ms

# run first time
update()

root.mainloop()

การดำเนินการนี้จะเปลี่ยนข้อความของป้ายกำกับเป็นตัวเลขใหม่โดยอัตโนมัติหลังจากผ่านไป 1,000 มิลลิวินาที คุณสามารถเปลี่ยนช่วงเวลาได้ตามต้องการ ฟังก์ชันอัปเดตสามารถปรับเปลี่ยนเพื่อดำเนินการอัปเดตที่จำเป็นได้

root.after(1000,update)

บรรทัดของรหัสนี้ทำหน้าที่หลักในการเรียกคืนฟังก์ชัน update()

พารามิเตอร์แรกใน root.after() ระบุช่วงเวลาเป็นมิลลิวินาทีหลังจากที่คุณต้องการให้ฟังก์ชันถูกเรียกคืน

พารามิเตอร์ที่สองระบุชื่อของฟังก์ชันที่จะเรียกคืน