2016-09-02 23 views
1

ここで私は9つのボタンを作成し、ボタンをクリックするとボタンに表示される必要があります....私はシンプルですが、どこが間違っていたのか分かりません。前もって感謝します。 self.button[i,j]=Button(self.root,text="*",padx=12,pady=12).grid(row=i,column=j): ここでは、コードボタンがクリックされたときのテキストの表示

from Tkinter import * 
class Design: 
def __init__(self): 
    self.button={} 
    self.root=Tk() 
    self.root.title("Simple Design") 
    self.root.geometry("300x300") 
    for i in range(3): 
     for j in range(3): 
      self.button[i,j]=Button(self.root,text="*",padx=12,pady=12).grid(row=i,column=j) 

    self.click() 



def click(self): 
    for i in range(3): 
     for j in range(3): 
      handler=lambda i,j:self.update(i,j) 
      print "click function" 
      self.button[i,j]=Button(self.root,command=handler) 

def update(self,i,j): 
    self.button[i,j]=Button(self).grid() 
    self.button[i,j]["text"]="Hello" 
    print "Hello" 
+3

可能な重複http://stackoverflow.com/questions/29828477/how-to-change -Tkinter-label-text-on-button-press) – Harrison

答えて

0

は、今私はあなたのコードをテストすることはできませんが、私はここでの問題を参照してくださいよ!返品のない.grid()に電話しています。あなたのself.button [i、j]はNoneです!

わずか2行でそれを実行します([ボタンを押して上のTkinterのラベルテキストを変更する方法]の self.button[i,j]=Button(self.root,text="*",padx=12,pady=12)self.button[i,j].grid(row=i,column=j)

+0

私は変更して試しましたが、出力に変更はありません。 –

+0

'self.button [i、j]'はそれ自体が_empty_ではありません。それは 'None'に設定されます。 –

+0

あなたが 'update'メソッドでそれをやっているからだと思います:' self.button [i、j] = Button(self).grid() ' – VRage