Python 使用forloop-tkinter将多个命令与多个按钮关联
在下面的代码中,创建了3个按钮并与3个不同的操作关联。现在每个按钮都必须执行其操作Python 使用forloop-tkinter将多个命令与多个按钮关联,python,python-3.x,for-loop,tkinter,tk,Python,Python 3.x,For Loop,Tkinter,Tk,在下面的代码中,创建了3个按钮并与3个不同的操作关联。现在每个按钮都必须执行其操作 import tkinter as tk class App(): def __init__(self,parent): self.parent = parent self.do_oper() def do_oper(self): self.labelframe = tk.Frame(self.parent).grid() m
import tkinter as tk
class App():
def __init__(self,parent):
self.parent = parent
self.do_oper()
def do_oper(self):
self.labelframe = tk.Frame(self.parent).grid()
m = ['a','b','c']
n = ['self.a','self.b','self.c']
dict_cmds = dict(zip(m,n))
for i,cmd in enumerate(dict_cmds):
self.Label=tk.Button(self.labelframe,command=lambda cmd=cmd:dict_cmds[cmd])
self.Label.config(text=cmd)
self.Label.grid(row=1,column=i)
def a(self):
print('Inside -> a')
def b(self):
print('Inside -> b')
def c(self):
print('Inside -> c')
if __name__ =='__main__':
root = tk.Tk()
App(root)
root.mainloop()
dict_-cmds={'a':self.a,'b':self.b,'c':self.c}
,tk.Button(self.labelframe,command=dict_-cmds[cmd])
我以前试过,但没用是的,谢谢。但是,当我将两个列表压缩为一个dict时,如何从中删除字符串?这是将它们存储为字符串的原因吗?直接引用函数会更好。我看不出图像与问题有什么关系。您的列表为什么是['self.a','self.b']
而不是[self.a,self.b]
?如果列表是在没有访问self的情况下创建的,那么它仍然可能是[App.a,App.b]
dict_cmds={'a':self.a,'b':self.b,'c':self.c}
,tk.按钮(self.labelframe,command=dict_cmds[cmds])
我之前尝试过,但没有成功,谢谢。但是,当我将两个列表压缩为一个dict时,如何从中删除字符串?这是将它们存储为字符串的原因吗?直接引用函数会更好。我看不出图像与问题有什么关系。您的列表为什么是['self.a','self.b']
而不是[self.a,self.b]
?如果创建的列表没有访问self
,那么它仍然可能是[App.a,App.b]
。