2016-09-02 4 views
1

Здесь я создаю 9 кнопок, и когда кнопка нажата, на кнопке должно появиться привет. Я знаю ее просто, но я не понимаю, где я ошибся. Заранее спасибо. Вот кодОтображение текста при нажатии кнопки на python

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

Возможный дубликат [Как изменить Tkinter текст надписи на кнопке печати] (http://stackoverflow.com/questions/29828477/how-to-change -tkinter-label-text-on-button-press) – Harrison

ответ

0

Прямо сейчас я не могу проверить свой код, но я вижу проблемы здесь: self.button[i,j]=Button(self.root,text="*",padx=12,pady=12).grid(row=i,column=j)! Вы звоните .grid(), который не имеет возврата. Итак, ваш self.button [i, j] - None!

Просто сделай это в 2-х линий: 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_ per se. Будет установлено значение «Нет». –

+0

Я думаю, это потому, что вы делаете это снова в своем 'update'-методе:' self.button [i, j] = Button (self) .grid() ' – VRage

Смежные вопросы