2016-11-08 18 views
0

カウントダウンタイマーの作成中に問題が発生しました。私はBryan Oakleysのコード(Making a countdown timer with Python and Tkinter?)に基づいています。かなり長いので、コード全体を投稿しませんでした。私は自分のコードが何をしたいのかTkinter - tkinterが反応せずにコードが実行される

:秒のx量のため

待ち、待ちに格納されたエントリウェイトによって収集。 次に、wait_buttonがCountdown呼び出しを呼び出すようにします。このクラスは、独自のtkinterウィンドウにラベルを作成します。カウントダウン(= x秒の遅延)後、主機能が呼び出され、フローが変更されます。

コードがエラーなしで実行されます。それは何

。カウントダウンが行われ、フローは変更されますが、2回目の遅延はなく、tkinterウィンドウは開かれません。

私はサイトを見ても、私の問題を解決するのに本当に役立つものは見つかりませんでした。

Stijn

def Wait_button(self): 
    """This is part of a larger tkinter grid and is called after pushing a button""" 
    """Wait for a set ammount of time before changing""" 
    self.Flow = self.Collect() 
    self.WaitE = int(self.WaitE.get()) 
    Countdown(self.Flow, self.WaitE) 
    return() 

class Countdown(): 

    def __init__(self, Flow, WaitE): 

     self.master = Tk() 
     self.label = Label(self.master, text="", width=10) 
     self.label.pack() 
     self.remaining = WaitE 
     self.Flow = Flow 
     self.counting(Flow, self.remaining) 

    def counting(self, Flow, remaining = None): 

     print(Flow, "after init") 
     if remaining is not None: 
      self.remaining = remaining 

     if int(self.remaining) <= 0: 
      self.master.destroy() 
      Go = AskInput(root) 
      Go.Change_now(Flow) 

     else: 
      print(self.remaining, "-1") 
      self.label.configure(text="%d" % self.remaining) 
      self.remaining = self.remaining - 1 
      self.label.after(1000, self.counting(self.Flow)) 
+1

は 'self.label.afterでafter''でラインを交換してみてください(1000、ラムダ:self.counting(self.Flow)) '。 – TigerhawkT3

+0

完璧!できます。この場合のラムダの重要性を説明できますか? –

+1

@ TigerhawkT3: 'lambda'と' after'を使う必要はありません。引数を渡すことができます: 'self.label.after(1000、self.counting、self.Flow)' –

答えて

0

TigerhawkT3によって解決しました。

"でラインを交換してみてください後self.label.after(1000年、ラムダ:self.counting(self.Flow))と"

+1

あなたはラムダを使用すると、不必要な複雑さが増します。関数呼び出しの中から引数を直接渡すことができます: 'self.label.after(1000、self.counting、self.Flow)' –

+0

ブライアンありがとうございます。あなたの答えはすでに私を何度も助けてくれました。 –

+0

最後に答えはとてもシンプルですが、私はそれを見ませんでした。 –

関連する問題