tkinter
関数の遅延
サーチ…
構文
- widget.after(delay_ms、コールバック、* args)
パラメーター
パラメータ | 説明 |
---|---|
delay_ms | 関数callback への呼び出しが遅れた時間(ミリ秒) |
折り返し電話 | 与えられたdelay_ms 後に呼び出される関数。このパラメータが指定されていない場合、 .after と同様の動作をしtime.sleep (ミリ秒単位) |
備考
構文は、 .after
が以前に作成されたメソッドによって受け入れられたwidget
想定していwidget
(つまり、 widget=tk.Label(parent)
)。
.after()
.after(delay, callback=None)
は、すべてのtkinterウィジェットに対して定義されたメソッドです。このメソッドは、ミリ秒単位で指定されたdelay
後に関数callback
呼び出しcallback
。関数が与えられていなければ、それはtime.sleep
と似たような働きをしtime.sleep
(ただし秒数ではなくミリ秒単位)
after
簡単なタイマーを作成する方法の例を次に示します。
# import tkinter
try:
import tkinter as tk
except ImportError:
import Tkinter as tk
class Timer:
def __init__(self, parent):
# variable storing time
self.seconds = 0
# label displaying time
self.label = tk.Label(parent, text="0 s", font="Arial 30", width=10)
self.label.pack()
# start the timer
self.label.after(1000, self.refresh_label)
def refresh_label(self):
""" refresh the content of the label every second """
# increment the time
self.seconds += 1
# display the new time
self.label.configure(text="%i s" % self.seconds)
# request tkinter to call self.refresh after 1s (the delay is given in ms)
self.label.after(1000, self.refresh_label)
if __name__ == "__main__":
root = tk.Tk()
timer = Timer(root)
root.mainloop()
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow