Загрузить значения из INI-файла в поле со списком

У меня есть GUI (создано с помощью PyQt5 & Python3.4). У меня есть пара комбобоксов: первая - это марка автомобилей, а вторая - модели выбранной марки.

у меня есть INI file сохранить последние значения, введенные в GUIпоэтому, когда я снова открываю GUI, последние значения / параметры ставятся автоматически. Это работает для всех других моих параметров, кроме выпадающего списка. Я пишу currentIndex в INI fileкогда я закрываю GUI правильный индекс записан в INI-файле, но когда я открываю GUI опять индекс меняется на 0.

Вот как выглядит мой код:

def comboSelect(self):

    config = configparser.ConfigParser()
    config.read('D:\File\save.ini')

    self.indexModel = ui.dmpModele.currentIndex()
    config.set('de_sec', 'dmp_modele', str(self.indexModel))

    with open('D:\File\save.ini', 'w') as configfile:
        config.write(configfile) # write the index in the INI file

if __name__ == "__main__":

    config = configparser.ConfigParser()
    config.read('D:\File\save.ini')

    p.indexModel = config.get('de_sec', 'dmp_modele') # get the value of index from INI file
    ui.dumperModele.setCurrentIndex(int(p.indexModel)) # pass the index to combo box

Что я пропустил?

1 ответ

Хорошо, я нашел это. Это была глупая ошибка. В моем

if __name__ == "__main__":

Я вызывал функции до того, как получил значения из INI-файла, и поэтому они были обнулены. Вот и все.

ОБНОВЛЕНИЕ: теперь индекс правильный, но имя в выпадающем списке - нет. Это не меняется, хотя я установил setCurrentIndex с правильным индексом. Как насчет этого?

Другие вопросы по тегам