.after()を使用して、いくつかの要素を次々に表示するスクリプトをtkinterで作成しようとしています(同時にすべてではありません)。
私が抱えている問題は、全体の待機時間が終了した後、すべての要素が同時に表示されることです (全体の待機時間 = 各要素の個々の時間の合計)。
Web で多くの例を確認しましたが、.after() メソッドを間違って使用していると思いますが、その理由がわかりません。
次のコードは、各ループの後に 0.5 秒待機してラベルを更新することを期待しています。それにもかかわらず、私が得たのは合計3秒の待機であり、その後tkinterウィンドウが表示され、リストの最後の要素が表示されます。
import tkinter as tk
import random
grid = [1, 2, 3, 4, 5, 6]
root = tk.Tk()
canvas = tk.Canvas(root, width=200, height=200)
canvas.pack()
def refresh():
for i in range(len(grid)):
text = grid[i]
label.configure(text=text)
root.after(500)
label = tk.Label(canvas, text='0', font='Courier 18')
label.place(relx=0.45, rely=0.4)
refresh()
root.mainloop()
前もって感謝します!