【问题标题】:How to save the QTreeItem structure created by user in xml file? [duplicate]如何将用户创建的 QTreeItem 结构保存在 xml 文件中? [复制]
【发布时间】: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()

【问题讨论】:

    标签: python xml pyside elementtree qtreewidgetitem


    【解决方案1】:

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

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

    详情请查看stackoverflow question

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 2014-04-30
      • 2021-06-06
      • 1970-01-01
      • 2014-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多