动态添加值到 Tkinter 菜单按钮(使用列表)
Dynamically Add Values To Tkinter Menubutton (using list)
我一直在努力寻找一些代码来帮助我动态地向 Tkinter Menubutton 添加值。经过大量研究,我自己想出了一个解决方案,并决定分享这方面的知识。
在菜单按钮中手动添加项目非常简单:
menubutton = Menubutton(root, text = "Select")
menubutton.menu = Menu(menubutton)
menubutton["menu"]= menubutton.menu
var1 = IntVar()
var2 = IntVar()
var3 = IntVar()
menubutton.menu.add_checkbutton(label = 'a', variable = var1)
menubutton.menu.add_checkbutton(label = 'b', variable = var2)
menubutton.menu.add_checkbutton(label = 'c', variable = var3)
menubutton.pack()
但是,如果想在 Tkinter Menubutton动态中添加菜单选项怎么办?
例如:
如果 list1 = ['a', 'b', 'c']
,则菜单选项应为 'a'
、'b'
和 'c'
如果 list1 = ['a', 'c']
,则菜单选项应为 'a'
和 'c'
这可以通过使用 list 和 dictionary 来完成,如下所示:
menubutton = Menubutton(root, text = "Select")
menubutton.menu = Menu(menubutton)
menubutton["menu"]= menubutton.menu
# main list holding menu values
list1 = ['a', 'b', 'c']
# Creating a dictionary
dict2 = {}
# Add key-value pairs to dictionary
for i in range(0, len(list1)):
temp = {'var'+str(i): list1[i]}
dict2.update(temp)
# Finally adding values to the actual Menubutton
for i in range(0, len(list1)):
menubutton.menu.add_checkbutton(label = dict2['var'+str(i)], variable = list(dict2.keys())[i])
menubutton.pack()
我一直在努力寻找一些代码来帮助我动态地向 Tkinter Menubutton 添加值。经过大量研究,我自己想出了一个解决方案,并决定分享这方面的知识。
在菜单按钮中手动添加项目非常简单:
menubutton = Menubutton(root, text = "Select")
menubutton.menu = Menu(menubutton)
menubutton["menu"]= menubutton.menu
var1 = IntVar()
var2 = IntVar()
var3 = IntVar()
menubutton.menu.add_checkbutton(label = 'a', variable = var1)
menubutton.menu.add_checkbutton(label = 'b', variable = var2)
menubutton.menu.add_checkbutton(label = 'c', variable = var3)
menubutton.pack()
但是,如果想在 Tkinter Menubutton动态中添加菜单选项怎么办?
例如:
如果 list1 = ['a', 'b', 'c']
,则菜单选项应为 'a'
、'b'
和 'c'
如果 list1 = ['a', 'c']
,则菜单选项应为 'a'
和 'c'
这可以通过使用 list 和 dictionary 来完成,如下所示:
menubutton = Menubutton(root, text = "Select")
menubutton.menu = Menu(menubutton)
menubutton["menu"]= menubutton.menu
# main list holding menu values
list1 = ['a', 'b', 'c']
# Creating a dictionary
dict2 = {}
# Add key-value pairs to dictionary
for i in range(0, len(list1)):
temp = {'var'+str(i): list1[i]}
dict2.update(temp)
# Finally adding values to the actual Menubutton
for i in range(0, len(list1)):
menubutton.menu.add_checkbutton(label = dict2['var'+str(i)], variable = list(dict2.keys())[i])
menubutton.pack()