Добрый день.
Мне удалось загрузить словарь из текстового файла с таким кодом:
def loadDictFile(data_folder):
critDict = json.loads(open(data_folder+'critDict3.txt').read())
print('json_data is', critDict)
return critDict
И я могу создать пользовательский интерфейс tkinter с включенными или выключенными флажками в соответствии со значениями словаря, используя следующий код:
def makeUI(data_folder, critDict):
top = Tk()
varList=[]
for key, val in critDict.items():
myVar = IntVar()#create intVar for this checkbutton
varList.append(myVar) #append new intvar to a list
key = Checkbutton(top, text = key, command = update) #create new checkbutton with text
if val[0] == 1:
key.select()#turn on checkbutton if the dict value is 1
key.pack()
T = Text(top, height=2, width=30)#create text box
T.pack()
T.insert(END, val[1])#fill text box with comments from dict
text = T.get("1.0",'end-1c')#get text from text box
button=Button(top, text="Update", command=save)
button.pack()
top.mainloop()
код, выполняющий функции:
data_folder = "C:\\Users\\NB\\Desktop\\checkbuttonTest\\"
critDict = loadDictFile(data_folder)
makeUI(data_folder, critDict)
Текстовый файл словаря critDict3.txt содержит следующую строку:
{
"crit2": [
0,
"comments2"
],
"crit3": [
1,
"comments3"
],
"crit1": [
1,
"comments"
],
"crit4": [
1,
"comments4"
]
}
Кажется, что все это работает нормально.
Но мне очень трудно понять, как получить значения любых измененных кнопок (кнопки, состояние которых было изменено пользователем). и сохраните их обратно в словарь, чтобы измененные значения можно было записать обратно в текстовый файл.
Я думаю, что моя проблема в том, что, поскольку я создал кнопки-флажки для l oop, я не уверен, как найти имя переменной каждого intVar, чтобы получить состояние кнопки проверки правой кнопки проверки, чтобы поместить в правильный список значений словаря ... если это имеет смысл.
Если кто-нибудь может указать мне правильное направление, я был бы очень признателен.