我使用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
...