Как работать с динамическим списком при использовании словаря для хранения текстовой переменной в Python - PullRequest
0 голосов
/ 11 апреля 2019

Я делаю приложение с 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 () не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...