Поэтому я пишу 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], мой список не обновляется, он остается в первом выбранном порядке.
Одна идея, которая у меня возникла, состояла в том, чтобы попытаться найти, какое опциональное меню выполняет вызов, чтобы узнать, в каком порядке в списке мне нужно обновить элемент. Но я не знаю, как это сделать.