python - tkinter - 将 for 循环中的按钮链接到函数字典 {name : function}
问题描述
我正在尝试在 for 循环中创建一个相当大的按钮列表,该列表也链接到要在字典中调用的相应函数。这里和这里有一些类似的帖子讨论使用 lambda 分配名称 = 名称,但我似乎无法弄清楚如何将其合并到每个调用字典中不同函数的特定实例中,而不是更改单个单个函数的参数。这是一个例子。
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()
推荐阅读
- google-apps-script - 使用谷歌脚本更改谷歌表单的提交按钮文本
- azure-devops - 如何更改 azure Devops 项目中 sprint 的日期模式
- python - 为什么我的曲线拟合对初始猜测参数如此敏感
- keras - 访问功能和顺序 keras 模型输出
- java - 在spring批处理器中执行查询
- php - 计算可用时隙
- c - 致命错误:GLFW/glfw3.h:没有这样的文件或目录
- kubernetes - 将图像推送到本地注册表时出现 ctr 命令错误
- excel - 新对象:找不到与参数名称“comobject”匹配的参数
- python - odbc 连接器时间序列 ts 需要小写而不是大写