2017-10-26 18 views
-2

一般的なカウントダウンタイマーを作成しようとしています。 GUIベースの場合、tk.afterを使用すると魔法が効くが、そうではない。Python- tkinterの "after"を含まないバックグラウンドタイマープロセスを作成します。

カウントダウン中は1、オフの場合は0を返します。このカウンタは、の他のクラス(GUIクラスでもよい)の内部でのバックグラウンドで実行されます。

例えば、TimeOutは、そのカウントダウンタイマーも聞かせて:

a = TimeOut(days=0,seconds=100) # a runs in background for 100 seconds. 
a.status() # during countdown time - `status` returns `1`. 

は、このようなクラスを作成するためのエレガントな方法はありますか?

+0

は、どのようにそれは 'tkinter.Frame'クラスから派生した場合'クラスTimeOut'は 'tkinter'を使用しないように期待していませんか?他にも多くの依存関係があります。独立したクラスが持つメソッドを正確に定義してください。 – martineau

+0

@martineau - 私はtkinterの依存関係は必要ありません。私の質問の上部に何が必要なのかを見ることができます:時間間隔と出力、0または1 –

+0

time.sleep(秒)で関数を作ることができます。 – Nae

答えて

1

これはtkinterとは関係ありません。

threading.Timerを使用してください。

>>> from threading import Timer 
>>> t = Timer(10, lambda: None) 
>>> t.start() 
>>> t.is_alive() # call before 10 seconds is up 
True 
>>> t.is_alive() # call after 10 seconds is up 
False 
関連する問題