こんにちは、なりなりです(^ ^)
【Python入門】Pythonistaでタイマーを作る(1) - なりなり日記
前回、Text Fieldの表示が更新されないという問題にぶつかりましたが、これには、スレッドを使うのが良いようです。
import ui import threading def count_down(textfield): global times if times > 0: t = threading.Timer(1, count_down,args=[textfield]) t.start() times -= 1 textfield.text = str(times) def button_tapped(sender): global times textfield = sender.superview['textfield1'] times = int(textfield.text) count_down(textfield) v = ui.load_view() v.present('sheet')
キーとなるのが
import threading
threadingモジュールのインポートです。
t = threading.Timer(1, count_down,args=[textfield])
その中のTimerメソッドで1秒後に自分自身の関数を再帰的に呼び出すことで、繰り返し実行されます。
Timerメソッドは「args=」で呼び出す関数の引数を指定出来ますが、似たようなメソッドで引数指定出来ないものも有るので、常に
threading.Timer(1, lambda:count_down(textfield))
この様にラムダ式を使った方がスマートかもしれません。
さあ、これで、タイマーの基本的は作り方が分かりましたね(^-^)
【Python入門】tkinkerでタイマーを作る - なりなり日記
続きはこちらですが、一回、脱線します!