我正在创建按钮,然后将它们作为参数传递给我创建的函数(放置),但是当我将它们作为参数运行并尝试打印此输入的类型时,它们变成了事件对象,不明白为什么会发生这种情况,我需要将它们保留为Button对象,因为我想在单击按钮后更改按钮的文本
for column in range(self.column + 1):
new_button = Button(new_frame, text = ' ', height = 10, width = 20)
new_button.grid(row = r, column = c)
new_button.bind('<Button-1>', func = lambda x=new_button: self.placement(x))
def placement(self, button):
print(type(button))
if self.current == 1:
button.config(text = 1)
self.current = 2
else:
button.config(text = 2)
self.current = 1
答案 0 :(得分:2)
bind
函数需要一个event
参数,因此您必须将代码更改为:
new_button.bind('<Button-1>', func = lambda event, x=new_button: self.placement(x))