如何调整代码,使得当从菜单选择 xyz17
时,执行函数 xyz17()
?
我知道可以使用 command = xyz17
,但不确定如何使其动态化,以依赖于菜单的选择。
from tkinter import *
def xyz17():
print('xyz17')
def abc27():
print('abc27')
def qwe90():
print('qwe90')
def uio19():
print('uio19')
def jkl09():
print('jkl09')
def zxc28():
print('zxc28')
class Menu(OptionMenu):
def __init__(self, master, status, *options):
self.var = StringVar(master)
self.var.set(status)
OptionMenu.__init__(self, master, self.var, *options)
def main():
TopFrame = Frame(root)
TopFrame.pack()
Menu1 = Menu(TopFrame, 'xyz', 'xyz17','abc27','qwe90')
Menu2 = Menu(TopFrame, 'uio', 'uio19','jkl09','zxc28')
Menu1.pack()
Menu2.pack()
root = Tk()
main()
root.mainloop()
请注意,打印值的每个函数仅供示例,我希望代码运行函数本身。我意识到这一点:
class Menu(OptionMenu):
def __init__(self, master, status, *options):
self.var = StringVar(master)
self.var.set(status)
OptionMenu.__init__(self, master, self.var, *options, command=self.func)
def func(self,value):
print (value)
但是,这与我的情况无关,因为它只是获取值并将其打印出来,我希望它能够实际运行函数本身。
xyz17
,我只是为了举例而添加的。在我的代码中有一个下拉菜单,当选择一个选项时,我希望运行该函数。此外,该函数不仅仅打印值,这只是一个示例。 - jim bob你可以使用if过滤器来根据该字符串运行任何方法
。 - jim bob