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

Làm cách nào để tạo GUI tự động cập nhật bằng Tkinter trong Python?

Cửa sổ GUI có nhiều điều khiển như nhãn, nút, hộp văn bản, v.v. Đôi khi, chúng tôi có thể muốn nội dung của các điều khiển như nhãn tự động cập nhật trong khi chúng tôi đang xem cửa sổ.

Chúng tôi có thể sử dụng after () để chạy một chức năng sau một thời gian nhất định. Ví dụ:1000 mili giây có nghĩa là 1 giây. Hàm mà chúng tôi gọi liên tục sau một khoảng thời gian nhất định sẽ cập nhật văn bản hoặc bất kỳ cập nhật nào bạn muốn.

Chúng tôi có một nhãn trên cửa sổ của chúng tôi. Chúng tôi muốn văn bản của nhãn tự động cập nhật sau 1 giây. Để làm cho ví dụ dễ dàng, giả sử chúng tôi muốn nhãn hiển thị một số nào đó từ 0 đến 1000. Chúng tôi muốn số này thay đổi sau mỗi 1 giây.

Chúng ta có thể làm điều này bằng cách xác định một hàm sẽ thay đổi văn bản của nhãn thành một số ngẫu nhiên nào đó từ 0 đến 1000. Chúng ta có thể gọi hàm này liên tục sau khoảng thời gian 1 giây bằng cách sử dụng after ().

Ví dụ

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()

Thao tác này sẽ tự động thay đổi văn bản của nhãn thành một số mới sau 1000 mili giây. Bạn có thể thay đổi khoảng thời gian tùy theo nhu cầu. Chức năng cập nhật có thể được sửa đổi để thực hiện cập nhật được yêu cầu.

root. after (1000, cập nhật)

Dòng mã này thực hiện chức năng chính là gọi lại hàm update ().

Tham số đầu tiên trong root. after () chỉ định khoảng thời gian tính bằng mili giây mà sau đó bạn muốn hàm được gọi lại.

Tham số thứ hai chỉ định tên của hàm sẽ được gọi lại.