2012-06-04 131 views
0

後回到另一個30分鐘搜索,要麼未能理解的結果或無法找到結果......按鈕的Python/Tkinter的力量等待點擊

我想迫使我的應用程序,然後再繼續等待點擊一個按鈕,並具有以下代碼段如我的例子:

... 

def crack(self, Filenamelist, forceclick): 

     forceclick += 1 

     self.crackButton.configure(state='active') 

     if forceclick != 2: 

      self.crackButton.bind('<ButtonRelease-1>', self.crack(Filenamelist, forceclick)) 

     self.outputBox.insert(END, '\n' + 'Parsing answer numerator...' + '\n') 

... 

我基本上希望它加載功能裂紋(),遞增1至forceclick(其被設置爲0預先),改變「裂紋按鈕」到活動狀態,然後在等待用戶激發綁定的同時綁定按鈕。在激發綁定之後,函數將重新加載,增加一個forceclick,然後跳過if語句。但是,當我通過運行程序時,它只是將鍵綁定到裂縫按鈕,並自動重新加載函數以繞過if語句...我之前嘗試了一段時間循環,但那並沒有結束。 。

有什麼建議嗎?

回答

0

你需要做綁定功能的拉姆達:

self.crackButton.bind('<ButtonRelease-1>', lambda e: self.crack(Filenamelist, forceclick)) 

目前,它被調用函數。

儘管可能有更好的方法來完成您正在嘗試完成的任務,但這應該能解決您的直接問題。

+0

它仍在跳過該功能,當我之後單擊按鈕時,會引發一個異常:Tkinter回調中的異常 回溯(最近調用最後一次): 文件「/usr/lib/python2.7/lib- tk/Tkinter.py「,第1410行,在__call__中 返回self.func(* args) TypeError:()不帶參數(給出1) – user1435947

+0

@ user1435947:抱歉。一個事件被傳遞給鏈接的事件。我糾正了我的迴應。 –

+0

雖然,這可能無法解決您的其他問題。你如何等待用戶點擊按鈕? –