如何将用户创建的 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如何在特定用户下保存和检索数据