11

“我想用各种列表中的项目填充 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
4

2 回答 2

19

lst在您的代码中是一个带有单个字符串的列表。

使用具有多个菜单名称的列表,并按如下方式指定它们:

....
lst = ["a","b","c","d","e","f"]
OptionMenu(root, var, *lst, command=print_it).pack()
....
于 2013-08-13T15:27:38.723 回答
1

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

if x == "Done":
    pass
于 2021-02-03T11:52:01.857 回答