“我想在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
答案 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