У меня есть небольшая программа со многими виджетами, такими как флажки, textctrls, statictexts, ...
Значения всех моих виджетов хранятся в словаре. Я сохраняю настройки, например этот словарь в CSV-файл. Когда я импортирую настройки из этого файла и обновляю свой словарь, все мои виджеты должны быть включены или отключены в зависимости от значения в словаре, вызвав «def enable_controls». Но виджеты всегда включены, даже если значение равно «Ложь».
Вот фрагмент кода:
def enable_controls(self):
self.Checkbox1.SetValue(bool(config.StartValues['Checkbox1']))
self.Checkbox1TextCtrl.Enable(bool(config.StartValues['Checkbox1']))
self.Checkbox1StaticText.Enable(bool(config.StartValues['Checkbox1']))
self.Checkbox2.SetValue(bool(config.StartValues['Checkbox2']))
self.Checkbox2TextCtrl.Enable(bool(config.StartValues['Checkbox2']))
self.Checkbox2StaticText.Enable(bool(config.StartValues['Checkbox2']))
Когда я не назначаю значение динамически, это работает:
def enable_controls(self):
self.Checkbox1.SetValue(False)
self.Checkbox1TextCtrl.Enable(False)
self.Checkbox1StaticText.Enable(False)
self.Checkbox2.SetValue(False)
self.Checkbox2TextCtrl.Enable(False)
self.Checkbox2StaticText.Enable(False)
Правильно ли я выполняю преобразование типов в bool?
Редактировать: Вот как я пишу и читаю из моего CSV-файла:
def onButtonSave(self, event):
import csv
getValues(self, StartValues)
writer = csv.writer(open('Test.csv', 'wb'))
for key, value in sorted(config.StartValues.items()):
writer.writerow([key, value])
def onButtonLoad(self, event):
import csv
reader = csv.reader(open('Test.csv', 'rb'))
config.StartValues = dict(x for x in reader)
enable_controls(self)