Python 在不关闭小部件的情况下将Qcombobox的Qsettings写入文件

Python 在不关闭小部件的情况下将Qcombobox的Qsettings写入文件,python,pyqt,pyqt5,qcombobox,qsettings,Python,Pyqt,Pyqt5,Qcombobox,Qsettings,将Qtablewidget作为启动小部件运行,并将Con小部件导入到Qtablewidget。从QCombobox希望保存并还原到具有目录路径的文件。每个小部件和布局都可以工作,问题在于QCombobox保存功能。考虑启动并运行应用程序,当Qcombobox的值发生变化时,是否应运行并写入功能设置?但它不起作用。不知道这里怎么了?谢谢你的帮助。我在下面将代码复制到最少且高效的代码中 class CON(QtWidgets.QWidget): def __init__(self, rowT

Qtablewidget
作为启动小部件运行,并将
Con
小部件导入到
Qtablewidget
。从
QCombobox
希望保存并还原到具有目录路径的文件。每个小部件和布局都可以工作,问题在于QCombobox保存功能。考虑启动并运行应用程序,当Qcombobox的值发生变化时,是否应运行并写入功能设置?但它不起作用。不知道这里怎么了?谢谢你的帮助。我在下面将代码复制到最少且高效的代码中

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, int))
settings.endGroup()
settings.beginGroup(“Con”)
self.combo.setCurrentIndex(settings.value(“Conoption”,4,int))

settings.endGroup()
我不明白您的意思,而且您提供的代码不是MREI,我知道它不够清楚。我需要复制一个可行的,非常短的代码,但首先明天和更新,让你知道,什么时候代码将更新。我已经修补了你的代码,我可以执行它,所以我有一个问题,我在我的回答中指出。另一方面,令人恼火的是,你意识到你的问题不够清晰,不努力改进。所以需要的是,在我们努力帮助您的过程中,您需要花时间发布尽可能好的问题。这是一段很长的代码,我试图尽可能地缩短它,这样您的人可能会很快发现错误。当我觉得信息不够的时候,我真的花时间去重现这个问题。这就是我在上一篇文章中提到明天更新代码的原因。尽可能多的演示。首先,当我运行代码时,不会给我任何错误,并查看我的文件,查看writeSetting是否确实创建了任何带有con0等的文件。。。没有这样的文件。但我很快就会有更新。。。谢谢你的回复。我把你的答案标记为正确,我确实把代码切成小块,只得到str错误。无需上传添加更新,谢谢。