【发布时间】:2020-03-04 13:03:35
【问题描述】:
将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()
【问题讨论】:
-
我不明白你,除了你提供的代码不是 MRE
-
我明白这还不够清楚。我需要重现一个可行且非常短的代码,但首先明天更新并让您知道代码何时更新。
-
我已经修补了你的代码,我可以执行它,所以我遇到了我在回答中指出的问题。另一方面,令人讨厌的是,您意识到自己的问题不够清晰,并且不努力改进它。 SO 要求您花时间发布最好的问题,因为我们会努力为您提供帮助。
-
这是很长的代码,我尽量缩短,所以你们可能很快就会发现错误。当我觉得信息不够时,我确实需要时间来重现问题。这就是为什么我在上一篇文章中提到明天更新代码的原因。尽可能多的介绍。
-
首先当我运行代码时,没有给我任何错误,并查看我的文件以查看 writeSetting 确实创建了任何带有 con0 等的文件......没有这样的文件。但是我很快就会更新...谢谢您的回复。
标签: python pyqt pyqt5 qcombobox qsettings