2015-07-13 4 views
0

Как создать файл xml содержит иерархическую структуру уровня QTreeWidgetItem, которая создается пользователем, я использую (ETreeElement для создания xml-файла) ?, Я попытался сделать это, сделав xml-файл получить структуру во время пользователя создать его, но я получил только корневой элемент с первым ребенком я не могу получить другие пунктыКак сохранить структуру QTreeItem, созданную пользователем в 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() 

ответ

0

вы не можете просто написать непосредственно объект в файл, вы должны сериализовать его.

Используйте эту библиотеку gnosisxml сериализовать объект в XML: From here

Для получения дополнительной информации просмотра этого stackoverflow question