【问题标题】:Dynamically Add Values To Tkinter Menubutton (using list)将值动态添加到 Tkinter 菜单按钮(使用列表)
【发布时间】:2021-03-07 07:49:19
【问题描述】:

我一直在努力寻找一些可以帮助我将值动态添加到 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'

【问题讨论】:

    标签: python-3.x tkinter tkinter-menu


    【解决方案1】:

    这可以通过使用 listdictionary 来完成,如下所示:

    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()
    

    【讨论】:

      猜你喜欢
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      相关资源
      最近更新 更多