How do populate a Tkinter optionMenu with items in a list

20,674

Solution 1

lst in your code is a list with a single string.

Use a list with multiple menu names, and specify them as follow:

....
lst = ["a","b","c","d","e","f"]
OptionMenu(root, var, *lst, command=print_it).pack()
....

Solution 2

In your code in line 2 you used = instead use == for your if statement and don't use the break keyword outside a loop instead use pass. Change it to the following:

if x == "Done":
    pass
Share:
20,674
kflaw
Author by

kflaw

Updated on February 04, 2021

Comments

  • kflaw
    kflaw over 3 years

    "I want to populate option menus in Tkinter with items from various lists, how do i do that? In the code below it treats the entire list as one item in the menu. I tried to use a for statement to loop through the list but it only gave me the value 'a' several times.

    from Tkinter import *
    
    def print_it(event):
      print var.get()
    
    root = Tk()
    var = StringVar()
    var.set("a")
    lst = ["a,b,c,d,e,f"]
    OptionMenu(root, var, lst, command=print_it).pack()
    root.mainloop()
    

    I want to now pass the variable to this function, but i'm getting a syntax error for the second line:

    def set_wkspc(event):
      x = var.get()
      if x = "Done":
          break
      else:
          arcpy.env.workspace = x
      print x