2015-11-14 127 views
-1

我試圖製作一個簡單的基於GUI的遊戲,它有一個帶有文本CLICK ME的按鈕。每當用戶單擊按鈕時,按鈕上將顯示總數點擊。GUI程序不能正常工作PYTHON

這裏是我的代碼

from Tkinter import * 

    class Application(Frame): 

     def __init__(self,master): 
      Frame.__init__(self,master) 
      self.grid() 
      self.bttn_click = 0 
      self.create_widget() 

     def create_widget(self): 
      self.bttn = Button(self) 
      self.bttn["text"] = "Total Clicks = 0" 
      self.bttn["command"] = self.update_count() 
      self.bttn.grid() 

     def update_count(self): 
      self.bttn_click += 1 
      self.bttn["text"] = "Total Clicks = " + str(self.bttn_click) 

    #main 

    root = Tk() 
    root.geometry("900x700") 
    root.title("Click Counter") 

    app = Application(root) 

    root.mainloop() 
+1

好的,那麼你的問題是什麼? – Doorknob

+0

總點擊數沒有更新... –

+3

'self.bttn [「command」] = self.update_count()'調用函數並將其結果分配給lhs,而不是註冊函數 –

回答

0

請從official documentation閱讀。在那裏,第一個「Hello World」示例與您的代碼幾乎相同。

命令self.bttn["command"] = self.update_count()將返回值def update_count(self)分配給您的按鈕命令。

如果想知道一些行動的結果應該是什麼,你總是可以使用打印語句事後驗證你的作業做了什麼。

self.bttn["command"] = self.update_count() 
print(self.bttn["command"]) 

究竟是什麼問題,它來自哪裏?

在上面提到你的代碼行

,你是立即調用self.update_count,而不是分配給被稱爲每次按下按鈕的功能。