Я делаю приложение с Python и планирую сгенерировать несколько выпадающих кнопок в зависимости от введенного числа от пользователя. Я использую тип dict для хранения результата каждой выпадающей кнопки. Однако метод get (key) в типе dict не может получить значение комбинированного списка. Может кто-нибудь помочь мне с этой проблемой? Любая помощь будет оценена.
Я использую Python 3.6 и tkinter
import tkinter as tk
import tkinter.ttk as ttk
listA=["s1","s2"]
def Readstatus(event,key):
print(root.var.get(key))
def data():
root.var = dict()
for i in range(2):
root.var[i]=tk.StringVar()
tk.Label(frame,text=i).grid(row=i,column=0)
tk.Label(frame,text="my text"+str(i)).grid(row=i,column=1)
frame.cb=ttk.Combobox(frame,values=listA, textvariable=root.var[i])
frame.cb.bind("<<ComboboxSelected>>",lambda event,key=i: Readstatus(event,key))
frame.cb.grid(row=i, column=2)
def myfunction(event):
canvas.configure(scrollregion=canvas.bbox("all"),width=780,height=150)
root=tk.Tk()
sizex = 820
sizey = 600
posx = 100
posy = 100
root.wm_geometry("%dx%d+%d+%d" % (sizex, sizey, posx, posy))
myframe=tk.Frame(root,relief=tk.GROOVE,width=800,height=150,bd=1)
myframe.place(x=10,y=400)
canvas=tk.Canvas(myframe)
frame=tk.Frame(canvas)
myscrollbar=tk.Scrollbar(myframe,orient="vertical",command=canvas.yview)
canvas.configure(yscrollcommand=myscrollbar.set)
myscrollbar.pack(side="right",fill="y")
canvas.pack(side="left")
canvas.create_window((0,0),window=frame,anchor='nw')
frame.bind("<Configure>",myfunction)
data()
root.mainloop()
Я ожидаю, например, иметь 2 выпадающих кнопки, и выбранный результат будет сохранен в root.var, например, {'0': 'S1', '1': 'S2'}. Однако root.var - это {0: 1:}. Кажется, метод get () не работает.