2013-04-25 67 views
0

我試圖得到這個,所以當你按下'HELLO'五次文本變成紅色時 只是它沒有添加任何東西,當我添加任何可行的東西時。這是代碼。如何在python中使用一個帶有GUI的變量3

from tkinter import * 
    class application(Frame): 
    global t 
    t=1 
    def info(self): 
     print ("test") 
    global t 
    t=t+5 

    def createWidgets(self): 
    global t 
    t=t 
    self.exet= Button(self) 
    self.exet["text"] = "QUIT" 
    self.exet["fg"] = "red" 
    self.exet["command"] = self.quit 

    self.exet.pack({"side": "left"}) 

    self.hi = Button(self) 
    self.hi["text"] = "HELLO", 
    if t == 5: 
     self.hi["fg"] = "red" 

    self.hi["command"] = self.info 
    self.hi.pack({"side": "left"}) 

    def __init__(self, master=None): 
    Frame.__init__(self, master) 
    self.pack() 
    self.createWidgets() 

感謝任何幫助!

+1

您的縮進到處都是,您可以請打掃一下嗎? – 2013-04-25 17:15:32

回答

1

這裏有幾個問題:首先,您使用全局變量,然後將其包含在函數的範圍內。相反,你應該使用一個實例變量(self.t,或者更好的可讀性爲self.counter)。其次,您正在檢查createWidgets中的計數器的值,該值僅由__init__方法調用一次。您應該增加並檢查按鈕上事件處理函數的值。

class application(Frame): 

    def info(self): 
     self.counter += 1 
     print(self.counter) 
     if self.counter == 5: 
      self.hi["fg"] = "red" 

    def createWidgets(self): 
     self.counter = 0 
     self.exet= Button(self) 
     self.exet["text"] = "QUIT" 
     self.exet["fg"] = "red" 
     self.exet["command"] = self.quit 
     self.exet.pack({"side": "left"}) 

     self.hi = Button(self) 
     self.hi["text"] = "HELLO", 
     self.hi["command"] = self.info 
     self.hi.pack({"side": "left"}) 

    def __init__(self, master=None): 
     Frame.__init__(self, master) 
     self.pack() 
     self.createWidgets() 
相關問題