如何使用列表中的项填充Tkinter optionMenu

时间:2013-08-13 15:02:57

标签: python list tkinter optionmenu

“我想在Tkinter中使用各种列表中的项目填充选项菜单,我该怎么做?在下面的代码中,它将整个列表视为菜单中的一个项目。我尝试使用for语句循环列表,但它只给了我几次'a'值。

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

我现在想把变量传递给这个函数,但是第二行我遇到了语法错误:

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

2 个答案:

答案 0 :(得分:12)

代码中的

lst是一个包含单个字符串的列表。

使用包含多个菜单名称的列表,并将其指定如下:

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

答案 1 :(得分:1)

在第 2 行的代码中,您使用 = 代替 == 作为 if 语句,并且不要在循环外使用 break 关键字,而是使用 pass。 将其更改为以下内容:

if x == "Done":
    pass