Запись Qsettings Qcombobox в файл без закрытия виджета - PullRequest
1 голос
/ 08 ноября 2019

Наличие 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()

1 Ответ

1 голос
/ 08 ноября 2019

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

settings.beginGroup("Con")
self.combo.setCurrentIndex(settings.value("Conoption", 4, <b>int</b>))
settings.endGroup()
...