【发布时间】:2015-01-23 00:03:04
【问题描述】:
很抱歉,如果已经有人问过这个问题,但我没能找到它。我也刚刚开始学习编程,因此非常感谢您的反馈。 :)
我的最终目标是创建一个 8 x“x”的按钮网格,当按下时它们会改变自己的颜色。我想用它来制作一个网格,我可以上传到我制作的 POV 玩具中。此代码创建一列 8 个按钮,每个按钮都带有一个回调,将自身作为参数传递。回调函数的想法可以对按钮做一些事情,比如改变它的颜色,或者删除它。
import Tkinter
def unpack(i):
buttons[i].pack_forget()
print i
top = Tkinter.Tk() buttons = [] for i in range(0, 8):
buttons.append(Tkinter.Button(top, text='Hello', command=lambda: unpack(i)))
for button in buttons:
button.pack()
top.mainloop()
当我这样做时,我会得到一个包含 8 个按钮列的窗口,当我单击一个时,会删除一个。当我点击一秒钟时,什么也没有发生。在我的命令提示符下,无论我按下哪个按钮,我都会打印出数字 7。我怀疑问题出在创建按钮的for 循环中,但我不知道如何解决。
谢谢!
【问题讨论】:
标签: python python-2.7 tkinter