我在运行时创建了多个按钮,并将它们存储在列表中。
keys = []
keys.append(Button(label="-- Parent --"))
for key in node_obj.children.keys():
keys.append(Button(label=key))
请注意,node_obj
的子代数量可能有所不同,因此按钮的数量并不总是相同。我正在尝试为所有按钮创建回调,并像这样:
def test_fn(button):
print(button.label)
for button in keys:
button.on_click(lambda : test_fn(button))
但它总是打印列表中最后一个按钮的标签。如何修改它以便打印所单击的按钮的标签?
这是Python运作方式的结果。您将需要使用functools.partial
来“烘焙”按钮: