Как получить выбранное пользователем значение в Combobox Tkinter?

Я хочу работать дальше с тем значением, которое указал пользователь. Например, есть словарь, где ключи - это то, что выбирает пользователь в combo1:

dct = {'Морковь': ['M1', 'M2', 'M3', 'M4'], 'Лук': ['Л2', 'Л4', 'Л5'], 'Картофель': ['К1', 'К2', 'К7']}

def selected(event):
    # получаем выделенный элемент
    global selection
    selection = combo.get()

root = Tk()
root.geometry('600x300')

combo1 = Combobox(root)
combo1['values'] = tuple(dct.keys())  
combo1.grid(column=0, row=0)
combo1.bind("<<ComboboxSelected>>", selected)

Я хочу создать второй виджет combo2, где пользователь будет выбирать по ключу нужный мне список. Т.е. пользователь выбирает, например, "Лук" и дальше открывается окно с выбором элементов: 'Л2', 'Л4', 'Л5'. Но я не понимаю как сделать это динамическое изменение для второго виджета. Мой код выглядит так:

from tkinter import *
from tkinter.ttk import Combobox

def selected(event):
    # получаем выделенный элемент
    global selection1
    selection1 = dct[str(combo1.get())]

def selected2(event):
    # получаем выделенный элемент
    global selection2
    selection2 = combo2.get()  

root = Tk()
root.geometry('600x300')

dct = {'Морковь': ['M1', 'M2', 'M3', 'M4'], 'Лук': ['Л2', 'Л4', 'Л5'], 'Картофель': ['К1', 'К2', 'К7']}
selection1 = None
selection2 = None

combo1 = Combobox(root)
combo1['values'] = tuple(dct.keys())  
combo1.grid(column=0, row=0)
combo1.bind("<<ComboboxSelected>>", selected)

combo2 = Combobox(root)
combo2['values'] = selection1  
combo2.grid(column=0, row=1)
combo2.bind("<<ComboboxSelected>>", selected2)

mainloop()

Ответы (1 шт):

Автор решения: insolor

В обработчике выбора первого комбобокса добавьте простановку values второго комбобокса:

def selected(event):
    ...
    combo2['values'] = dct[combo1.get()]

введите сюда описание изображения

→ Ссылка