我正在嘗試使用 Tkinter 制作一個簡單的數字時鐘。但是,在我使用“while True”更新變數和標簽之后,它不會創建一個視窗,即使該部分沒有縮進。這是我的代碼:
from datetime import datetime
from tkinter import *
root = Tk()
root.geometry('400x200')
while True
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
clock = Label(root, text = current_time)
clock.pack()
root.update()
``
uj5u.com熱心網友回復:
我以前沒有寫過任何python,但是我想這while true總是正確的,因此你有一個無限回圈,你的變數now會隨著新的時間不斷更新,沒有機會擺脫回圈
uj5u.com熱心網友回復:
while True:
...
程式卡在這部分它會繼續執行它。
為了解決問題,將while True邏輯移動到thread(Thread從threading模塊中使用)。
這是我們正在使用的另一種簡單方法clock.after(400, update),它將在400毫秒后呼叫并更新我們正在使用的標簽,mainloop以確保 main 在我們的視窗未關閉之前不會退出。
from datetime import datetime
from tkinter import *
root = Tk()
root.geometry('400x200')
clock = Label(root)
clock.pack()
def update():
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
print(current_time)
clock.config(text=current_time)
clock.after(400, update)
root.update()
update()
mainloop()
uj5u.com熱心網友回復:
在這里查看如何使用 tkinter 創建時鐘。 https://www.geeksforgeeks.org/python-create-a-digital-clock-using-tkinter/
您的代碼將永遠不會退出回圈,因為 while 將始終以非常高的速度回圈,因為條件始終為 (True)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/465739.html
