按钮对象更改为偶数对象

时间:2018-12-20 02:38:46

标签: python tkinter lambda

我正在创建按钮,然后将它们作为参数传递给我创建的函数(放置),但是当我将它们作为参数运行并尝试打印此输入的类型时,它们变成了事件对象,不明白为什么会发生这种情况,我需要将它们保留为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

1 个答案:

答案 0 :(得分:2)

bind函数需要一个event参数,因此您必须将代码更改为:

new_button.bind('<Button-1>', func = lambda event, x=new_button: self.placement(x))