Tkinterでafter()を使って定期的に表示を切り替えるアプリを作成したとします。
下記のコードの場合は、約3秒後(正確ではない)に表示している数字をインクリメントします。
次の表示までにかかる時間を取得することは可能ですか?
(特に目的があるわけではありません。興味本位です。)
labelが1、2、3、・・・と増えていくのに対し、
別のlabelで2.5[s]、2.4[s]、・・・みたいにカウントダウンしていけたらいいなと思いました。
でもやっぱ時間の計算をするにはtimeモジュールが一番でしょうか?
より正確な秒刻みのインクリメントもそうですが、経過時間と次の実行時間との差を計算するのがいいんですかね?
Python
1import tkinter as tk 2 3class App(tk.Frame): 4 def __init__(self, master): 5 super().__init__(master) 6 self.cnt = 0 7 self.label1 = tk.Label(self, text=str(self.cnt)) 8 self.label1.grid() 9 10 self.label1.after_idle(self.update) 11 12 def update(self): 13 self.cnt += 1 14 self.label1["text"] = str(self.cnt) 15 self.label1.after(3000, self.update) # 正確にはtimeモジュールで経過時間との差を計算する必要がある 16 17def main(): 18 root = tk.Tk() 19 root.geometry("400x300+100+100") 20 app = App(root) 21 app.grid() 22 app.mainloop() 23 24main()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/29 00:26