在不关闭Widget的情况下将Qcombobox的Qsettings写入文件

Writing Qsettings of Qcombobox to a file without closing Widget

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()

我得到的唯一错误是读取的值被解释为 str,因此为避免这种情况,您必须指明读取的类型:

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