在發送訊息時,我找不到保持 tkinter 更新的方法
import tkinter as tk # PEP8: `import *` is not preferred
import pyautogui
import time
msg = input("Enter the message: ")
num = input("How many times ?: ")
wait = input("How much time to wait before the boom? ")
time.sleep(int(wait))
for i in range(0, int(num)):
pyautogui.typewrite(msg '\n')
def update_clock():
# get current time as text
# udpate text in Label
lab.config(text=i)
#lab['text'] = current_time
# run itself again after 1000 ms
root.after(1000, update_clock)
root = tk.Tk()
lab = tk.Label(root)
lab.pack()
# run first time at once
update_clock()
# run furst time after 1000ms (1s)
#root.after(1000, update_clock)
root.mainloop()
uj5u.com熱心網友回復:
對于此示例,在您的for-loop 內的 label 中設定文本并使用root.update()而不是root.mainloop()強制tkinter重繪視窗中的小部件會更簡單。
import tkinter as tk
import pyautogui
import time
msg = input("Enter the message: ")
num = input("How many times ?: ")
wait = input("How much time to wait before the boom? ")
time.sleep(int(wait))
# --- GUI ---
root = tk.Tk()
lab = tk.Label(root)
lab.pack()
for i in range(int(num)):
pyautogui.typewrite(msg '\n')
# set text in widget (but it will NOT redraw widget in window)
lab.config(text=str(i))
# force tkinter to redraw widgets in window
root.update()
順便說一句:它會在顯示最后一個值后關閉 GUI。如果要保持打開狀態,請在 -loop 之后root.mainloop()使用for。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/505395.html
