Запись настроек Qcombobox в файл без закрытия виджета

Наличие Qtablewidget в качестве начального виджета и наличие виджета Con, импортированного в QTableWidget. Из QCombobox хочет сохранить и восстановить в файл с путем к каталогу. Все виджеты и макеты работают, проблема с функцией сохранения QCombobox. Думает запустить и запустить приложение, когда значение Qcombobox изменяется, должна запускаться и писать функция self.writeSettings? Но это не работает. Интересно, что здесь не так? Любая помощь ценна. Я воспроизвожу минимальный и производительный код ниже.

class CON(QtWidgets.QWidget):
    def __init__(self, rowTable, parent=None):
        super(CON, self).__init__(parent)  
        self.rowtable = rowTable
        self.combo = QtWidgets.QComboBox()
        self.combo.addItems(["15","20","25","30","37","45","50","55",
                       "60","67","75","85","95","105"])

        ------------------------------------

       self.combo.activated.connect(self.setdata)
       self.readSettings()

    @QtCore.pyqtSlot(int)
    def setdata(self, index):
        self.writeSettings()


    def readSettings(self):
        settings = QtCore.QSettings('files/con{}.ini'.format(self.rowtable) ,QtCore.QSettings.IniFormat)
        settings.beginGroup("Con")
        self.combo.setCurrentIndex(settings.value("Conoption", 4))
        settings.endGroup()

    def writeSettings(self):
        settings = QtCore.QSettings('files/con{}.ini'.format(self.rowtable) ,QtCore.QSettings.IniFormat)
        settings.beginGroup("Con")
        settings.setValue("Conoption",self.combo.currentIndex())
        settings.endGroup()

person Pavel.D    schedule 07.11.2019    source источник
comment
Я вас не понимаю, кроме того, что код, который вы предоставляете, не является MRE   -  person eyllanesc    schedule 08.11.2019
comment
Я понимаю, что недостаточно ясно. Мне нужно воспроизвести рабочий и очень короткий код, но сначала завтра и обновить и сообщить, когда код будет обновлен.   -  person Pavel.D    schedule 08.11.2019
comment
Я исправил ваш код и смог его выполнить, поэтому у меня возникла проблема, которую я указал в своем ответе. С другой стороны раздражает, что вы осознаете неясность своего вопроса и не стремитесь его улучшить. Что требует SO, так это то, что вы не торопитесь, чтобы опубликовать лучший из возможных вопросов, поскольку мы стремимся помочь вам.   -  person eyllanesc    schedule 08.11.2019
comment
Это очень длинный код, я пытался максимально его сократить, так что ваши ребята, возможно, быстро обнаружат ошибку. когда я чувствую, что информации недостаточно, мне действительно нужно время, чтобы воспроизвести проблему. вот почему я упоминаю в своем предыдущем посте, чтобы обновить код завтра. Максимально возможное представление.   -  person Pavel.D    schedule 08.11.2019
comment
Во-первых, когда я запускаю код, он не дает мне никаких ошибок и заглядывает в мои файлы, чтобы увидеть, что writeSetting действительно создал какой-либо файл с con0 и т. д. ... таких файлов нет. Но я скоро приду с обновлением... Спасибо за ответ.   -  person Pavel.D    schedule 08.11.2019
comment
Тогда вы должны опубликовать свой вопрос завтра, когда у вас будет лучший вопрос. Это всего лишь совет: если ваш проект большой и вы собираетесь добавить новую функциональность, не добавляйте ее напрямую, а создайте еще один небольшой проект, ориентированный на эту функциональность, протестируйте его, а затем, когда он станет стабильным, просто попробуйте присоединиться. его в основной проект, поэтому, если у вас есть какие-то проблемы, вам просто нужно опубликовать небольшой проект как MRE, с другой стороны, вы не сломаете свой окончательный проект, хотя кажется, что в краткосрочной перспективе вы потратите больше времени, это сэкономит вам время в долгосрочной перспективе.   -  person eyllanesc    schedule 08.11.2019
comment
Вы выполнили его в CMD или в IDE? Многие IDE неправильно обрабатывают ошибки.   -  person eyllanesc    schedule 08.11.2019
comment
Я согласен, и я действительно воспользовался вашим советом из моих предыдущих сообщений и реализовал его, и это действительно приносит мне пользу, и я все еще выполняю ту же процедуру.   -  person Pavel.D    schedule 08.11.2019
comment
Действительно, оба они, и никакой ошибки я не получаю, странно.   -  person Pavel.D    schedule 08.11.2019


Ответы (1)


Единственная ошибка, которую я получаю, это то, что прочитанное значение интерпретируется как str, поэтому, чтобы избежать этого, вы должны указать тип чтения:

settings.beginGroup("Con")
self.combo.setCurrentIndex(settings.value("Conoption", 4, int))
settings.endGroup()
person eyllanesc    schedule 07.11.2019
comment
Я отмечаю ваш ответ как правильный, я разрезаю код на мелкие кусочки и получаю только ошибку str. Не нужно загружать дополнительное обновление, спасибо. - person Pavel.D; 08.11.2019