目前每个选项菜单框都替换了前一个选项菜单框,所以如果写入ent1.get()我没有得到任何框中的值,我怎样才能区分每个选项菜单之间,并因此清楚地检索每个值?理想情况下,通过不同的名称将它们全部调用,这取决于它们在网格中的位置。
for x in range (xval):#creating the matrix
for y in range (yval):
variable = StringVar(root)
ent1 = OptionMenu(root, variable, *inputvalues)#creating the dropdown menus
ent1.config(width=3)
ent1.grid(row=(y+1), column=x)
答案 0 :(得分:0)
不确定我是否理解正确,但如果您尝试在单个循环中创建不同的StringVar,则可以使用variable.format()方法确保将每个StringVar
保存为唯一变量。
因此,以下循环将创建保存在变量ent1
,ent2
,ent3
等中的StringVar。这将允许您稍后单独调用它们。
for x in range (xval):#creating the matrix
for y in range (yval):
variable = StringVar(root)
ent["ent{0}"].format(y+1) = OptionMenu(root, variable, *inputvalues)#creating the dropdown menus
ent["ent{0}"].format(y+1).config(width=3)
ent["ent{0}"].format(y+1).grid(row=(y+1), column=x)
答案 1 :(得分:0)
使用字典来跟踪小部件和变量。
entries = {}
vars = {}
for x in range (xval):#creating the matrix
for y in range (yval):
variable = StringVar(root)
entry = OptionMenu(root, variable, *inputvalues)
entry.config(width=3)
entry.grid(row=(y+1), column=x)
entries[(x,y)] = entry
vars[(x,y)] = variable