在Tkinter中为在循环中创建的相同按钮提供唯一名称,可以使用lambda函数或partial函数来实现。
import tkinter as tk
root = tk.Tk()
def button_click(name):
print("Button", name, "clicked")
for i in range(5):
button_name = "Button " + str(i)
button = tk.Button(root, text=button_name, command=lambda name=button_name: button_click(name))
button.pack()
root.mainloop()
在上述代码中,通过lambda函数将按钮的名称作为参数传递给button_click
函数。这样每个按钮的名称都是唯一的,点击按钮时可以根据名称执行相应的操作。
functools
模块中的partial
函数。partial
函数可以创建一个新的可调用对象,该对象在调用时会自动将指定的参数传递给原始函数。示例代码如下:import tkinter as tk
from functools import partial
root = tk.Tk()
def button_click(name):
print("Button", name, "clicked")
for i in range(5):
button_name = "Button " + str(i)
button = tk.Button(root, text=button_name, command=partial(button_click, button_name))
button.pack()
root.mainloop()
在上述代码中,通过partial
函数将按钮的名称作为参数传递给button_click
函数。这样每个按钮的名称都是唯一的,点击按钮时可以根据名称执行相应的操作。
以上两种方法都可以为在循环中创建的相同按钮提供唯一名称,并且可以根据按钮的名称执行相应的操作。
领取专属 10元无门槛券
手把手带您无忧上云