tkinter - 将 for 循环中的按钮链接到函数字典 {name : function}
tkinter - linking buttons in a for loop to a dictionary of functions {name : function}
我正在尝试在 for 循环中创建一个相当大的按钮列表,该循环还链接到要在字典中调用的相应函数。有一些类似的帖子 here and 讨论了使用 lambda 分配 name=name,但我似乎无法弄清楚如何将其合并到这个特定实例中,每个实例都调用字典中的不同函数,而不是改变单一功能的单一参数。这是一个例子。
import tkinter as tkinter
root = tkinter.Tk()
def funct1():
print("Printed Func1")
def funct2():
print("Printed Func2")
buttons_dict = {"button1": "Func1", "button2": "Func2"}
row = 0
for name in buttons_dict:
buttons = tkinter.Button(root, text=name) # command=lambda name=name: root(name))
buttons.grid(row=row)
buttons.config()
row += 1
root.mainloop()
从这样的字典中收集信息时,为函数指定名称的正确方法是什么?
您可以这样引用字典中的函数:
import tkinter as tkinter
root = tkinter.Tk()
def funct1():
print("Printed Func1")
def funct2():
print("Printed Func2")
buttons_dict = {"button1": funct1, "button2": funct2}
row = 0
for name in buttons_dict:
buttons = tkinter.Button(root, text=name, command=buttons_dict[name])
buttons.grid(row=row)
buttons.config()
row += 1
root.mainloop()
我正在尝试在 for 循环中创建一个相当大的按钮列表,该循环还链接到要在字典中调用的相应函数。有一些类似的帖子 here and
import tkinter as tkinter
root = tkinter.Tk()
def funct1():
print("Printed Func1")
def funct2():
print("Printed Func2")
buttons_dict = {"button1": "Func1", "button2": "Func2"}
row = 0
for name in buttons_dict:
buttons = tkinter.Button(root, text=name) # command=lambda name=name: root(name))
buttons.grid(row=row)
buttons.config()
row += 1
root.mainloop()
从这样的字典中收集信息时,为函数指定名称的正确方法是什么?
您可以这样引用字典中的函数:
import tkinter as tkinter
root = tkinter.Tk()
def funct1():
print("Printed Func1")
def funct2():
print("Printed Func2")
buttons_dict = {"button1": funct1, "button2": funct2}
row = 0
for name in buttons_dict:
buttons = tkinter.Button(root, text=name, command=buttons_dict[name])
buttons.grid(row=row)
buttons.config()
row += 1
root.mainloop()