如何将用户创建的 QTreeItem 结构保存在 xml 文件中? [复制]

Posted

技术标签:

【中文标题】如何将用户创建的 QTreeItem 结构保存在 xml 文件中? [复制]【英文标题】:How to save the QTreeItem structure created by user in xml file? [duplicate] 【发布时间】:2015-10-01 08:48:06 【问题描述】:

如何创建 xml 文件包含由用户创建的 QTreeWidgetItem 的级别层次结构,我正在使用(用于创建 xml 文件的 ETreeElement)?,我试图通过使 xml 文件在用户创建它,但我只有第一个孩子的根项目,我无法获得其他项目

def rootItem(self):
    itemName = self.TreeviewForFolders.topLevelItem(0).text(0)
    return itemName


def addItem(self, name, parent):
    self.TreeviewForFolders.expandItem(parent)
    item = QTreeWidgetItem(parent)
    item.setText(0,name)
    item.setFlags(Qt.ItemIsEditable | Qt.ItemIsSelectable | Qt.ItemIsEnabled)
    return item

def addFolders(self):
    item = self.TreeviewForFolders.invisibleRootItem()

    if(self.TreeviewForFolders.topLevelItemCount() == 0):
        self.addItem("Item", item)
        root = Element(str(self.rootItem()))

    else:
        if(len(self.TreeviewForFolders.selectedItems()) > 0):
            item = self.TreeviewForFolders.selectedItems()[0]
            self.addItem("Item", item)

            root = Element(str(self.rootItem()))
            child = SubElement(root, "Item")



    output_file = open( 'Tamplet.xml', 'w' )
    output_file.write( '<?xml version="1.0"?>' )
    output_file.write( ElementTree.tostring( root ) )
    output_file.close()

【问题讨论】:

【参考方案1】:

你不能直接将一个对象写入文件,你必须序列化它。

使用此 gnosisxml 库将对象序列化为 xml:From here

详情请查看*** question

【讨论】:

以上是关于如何将用户创建的 QTreeItem 结构保存在 xml 文件中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将每次迭代的输出保存到结构中

Android Firebase如何在特定用户下保存和检索数据

如何保存和加载用户创建的游戏对象?

如何将 pid 的值保存在数据结构中并稍后使用 fork() 访问它?

如何在模型中保存 cakephp 对象

避免在数据库中保存空白结构对象