如何使用PyQt4保存和加载QListWidjet内容到/从qseting加载?

2024-05-13 22:54:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我的PyQt4应用程序中有一个QListWidget。它包含文件夹路径。 我想把它的内容保存到QSettings,然后再加载它们。 我用了这个代码:

def foldersSave(self):
    folders = {} '''create dict to store data'''
    foldersnum = self.configDialog.FolderLIST.count() '''get number of items'''
    if foldersnum:
        for i in range(foldersnum):
            folders[i] = self.configDialog.FolderLIST.item(i).text() '''save items text to dict'''
        return str(folders) '''return string of folders to store in QSettings'''
    return None

但如果我这样做,文件夹路径存储在配置文件中,如下所示:

^{pr2}$

所以我不知道怎么装。我在不同的变体中尝试过这样的东西:

def foldersLoad(self):
    folders = eval(self.tunSettings.value('musicfolders').toString())

它返回错误:

TypeError: eval() arg 1 must be a string or code object

看起来我只需要用其他方法保存数据,然后现在就可以了。 找了很多东西,但没有线索。我相信答案是微不足道的,但我被卡住了。在


Tags: oftostoreself路径文件夹returndef
1条回答
网友
1楼 · 发布于 2024-05-13 22:54:54

解决办法很简单。我要用QStringList。在

def foldersSave(self):
    folders = QtCore.QStringList()
    foldersnum = self.configDialog.FolderLIST.count()
    if foldersnum:
        for i in range(foldersnum):
            print (i, " position is saved: ", self.configDialog.FolderLIST.item(i).text())
            folders.append(self.configDialog.FolderLIST.item(i).text())
        return folders
    return None

装载

^{pr2}$

相关问题 更多 >