Drop down list dependent from another drop down tkinter Drop down list dependent from another drop down tkinter tkinter tkinter

Drop down list dependent from another drop down tkinter


You can use Combobox to make dependent dropdown list

import tkinterfrom tkinter import ttkroot = tkinter.Tk()''' widgets are added here '''brands = ["Bugatti","VW","Opel","Porsche"]models = [["Veyron","Chiron"],          ["Golf","Passat","Polo","Caddy"],          ["Insignia","Corsa","Astra"],          ["Taycan","Cayenne","911"]]car_brand = ttk.Combobox(root, width=37, value=(brands))car_brand.grid(row=3, column=1, columnspan=2, padx=10, pady=2, sticky='w')def callback(eventObject):    abc = eventObject.widget.get()    car = car_brand.get()    index=brands.index(car)    car_model.config(values=models[index])car_model = ttk.Combobox(root, width=37)car_model.grid(row=4, column=1, columnspan=2, padx=10, pady=2, sticky='w')car_model.bind('<Button-1>', callback)root.mainloop()


import tkinter as tkbrands = ["Bugatti","VW","Opel","Porsche"]models = [["Veyron","Chiron"],          ["Golf","Passat","Polo","Caddy"],          ["Insignia","Corsa","Astra"],          ["Taycan","Cayenne","911"]]root = tk.Tk()canvas = tk.Canvas(root, height=500, width= 500, bg="white")canvas.pack()tkvar = tk.StringVar(root)tkvar.set('Choose')tkvar2 = tk.StringVar(root)tkvar2.set('Model')popupMenu1 = tk.OptionMenu(canvas, tkvar, *brands)popupMenu1.pack()popupMenu2 = tk.OptionMenu(canvas, tkvar2, [])popupMenu2.pack()def change_dropdown(*args):    print("Chosen brand " + tkvar.get())    for i in range(len(brands)):        if tkvar.get() == brands[i]:            popupMenu2["menu"].delete(0, "end")            for item in models[i]:                   popupMenu2['menu'].add_command(label=item, command=tk._setit(tkvar2, item))tkvar.trace('w', change_dropdown)root.mainloop()