tkinter多个按钮调用同一个函数,如何确定点击的那个



我使用for循环来渲染15个按钮,每个按钮调用相同的函数来做一些事情。我的问题是如何确定点击了哪个按钮?我的代码片段如下:

for number in range(1, 16):
ttk.Button(bottom_frame, text='Read', command=read_one).grid(column=4, row=number, padx=5, pady=5)

我想对每个按钮重复使用函数read_one((,但不知道如何确定单击了哪个按钮。欢迎发表评论!这是我的测试代码:https://pastebin.com/fWyyNVw7

由于默认情况下command回调不会传递任何参数(如调用控件(,因此没有简单的选项。

然而,你可以使用这样的东西:

for number in range(1, 16):
ttk.Button(bottom_frame, text='Read', command=lambda number=number: read_one(number)
).grid(column=4, row=number, padx=5, pady=5)

这样,read_one将使用传递的号码进行调用。请注意,您需要read_one函数来处理它,例如:

def read_one(number):
# do something with number, since it tells you what button was pushed
...

最新更新