【发布时间】:2013-12-01 01:19:51
【问题描述】:
这是关键,按钮没有名字!
代码:
Button(buttonFrame, height=2, width=5, text = alpha[i], command=lambda j=i:
self.letterGuess(alpha[j])).grid(row=1, column=self.columnz(i))
我在 Tkinter 类中创建了一个循环,它创建了 26 个字母按钮。现在,当按下按钮时,会执行一个回调函数(letterGuess),并且命令行会打印出“Button %s”% letter”。
但我也想在按下按钮时禁用它。怎样才能做到这一点?
编辑: 这是循环:
alpha = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
buttonFrame = Frame(self).grid(row=0, column=1)
for i in range(len(alpha)):
if i <= 6:
Button(buttonFrame, height=2, width=5, text = alpha[i], command=lambda j=i: self.letterGuess(alpha[j])).grid(row=1, column=self.columnz(i))
elif i > 6 and i <=13:
Button(buttonFrame, height=2, width=5, text = alpha[i], command=lambda j=i: self.letterGuess(alpha[j])).grid(row=2, column=self.columnz(i))
elif i > 13 and i <=20:
Button(buttonFrame, height=2, width=5, text = alpha[i], command=lambda j=i: self.letterGuess(alpha[j])).grid(row=3, column=self.columnz(i))
elif i > 20 and i <26:
Button(buttonFrame, height=2, width=5, text = alpha[i], command=lambda j=i: self.letterGuess(alpha[j])).grid(row=4, column=self.columnz(i))
【问题讨论】:
-
循环显示你如何创建按钮。
-
检查按钮属性 state 并从那里开始。
标签: python button lambda tkinter