所以我正在编写一个 GUI,你从 1 个选项菜单开始,用户可以添加更多选项菜单。为了添加额外的选项菜单,我使用了一个函数:
def addmove():
global movecount, customalts, customvarlist
if ((customvarlist[-1] == "Choose action")) == False:
customvar = StringVar()
movecount += 1
#print(customvarlist[index(movecount)])
newMenu = OptionMenu(canvasframe, customvar, *customalts, command=autocontroll)
newMenu.grid(row=movecount,column=0)
#customvarlist.insert(movecount, customvar)
customvarlist.append(customvar.get())
每次选择一个选项时,都会调用以下函数:
def autocontroll(action):
global customvarlist
print(action)
if len(customvarlist) == 0:
customvarlist.append(action)
else:
if(customvarlist[-1] == "Choose action") and ((action != "Choose action")):
customvarlist = customvarlist[:-1]
customvarlist.append(action)
print(customvarlist)
我希望能够创建一个选定选项的列表,我通过从选项菜单中获取变量来做到这一点。但是当用户决定选择一个项目然后更改为另一个时,问题就出现了。例如,如果选项是 [item1, item2, item3],并且用户选择了 2 个项目,[item1, item2],但随后更改为 [item3, item2],我的列表不会更新,它仍然是选择的第一个顺序。
我的一个想法是尝试找到哪个选项菜单正在执行调用,以便知道我需要以列表中的哪个顺序更新项目。但我不知道有什么方法可以做到这一点。