0

我正在努力寻找一些代码来帮助我动态地将值添加到 Tkinter 菜单按钮。在做了很多研究之后,我自己想出了一个解决方案,并决定分享这个知识。

手动在菜单按钮中添加项目非常简单:

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'

4

1 回答 1

0

这可以通过使用列表字典来完成,如下所示:

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()
于 2021-03-07T07:49:19.403 回答