[Qt4] QTreeWidget + XML-DOM
Verfasst: 9. Januar 2010 15:25
hi,
ich muss ein kleines Programm schreiben, XML Dokument soll eingelesen, bearbeitet werden können und dabei noch einzelne Elemente hinzugefügt und gelöscht werden können.
Das ganze versuche ich mit QTreeWidget zu lösen, sieht eig. ganz gut aus. Das Einlesen und Abspeichern klappt auch wunderbar. Jedoch habe ich nun versucht, das Löschen zu implementieren.
Das klappt auch im TreeWidget hervorragend, er macht was er soll. Wenn ich dann jedoch das abspeichern möchte, erzeugt er mir eine XML-Datei, die das gelöschte Element immernoch enthält. Ich weiß jetzt ehrlich gesagt nicht, wie ich das dem Beibiegen soll?
Löschfunktion:
Hier wird der domTree geschrieben:
DOMTree ist ne abgeleitete Klasse von TreeWidget.
'ne Funktion wie refresh oder update gibt es ja nicht? Ich hab auch schon versucht, ihn nochmal alle items alphabetisch sortieren zu lassen, da müsste er ja eig. merken, dass da was gelöscht wurde..aber pustekuchen. Änderungen an den einzelnen Elementen werden ja auch an domTree vorgenommen und die werden auch 1a übernommen und exportiert. Nur beim Löschen hauts nicht hin..
Hat einer von euch da ne Idee zu? Wäre echt nett =)
ich muss ein kleines Programm schreiben, XML Dokument soll eingelesen, bearbeitet werden können und dabei noch einzelne Elemente hinzugefügt und gelöscht werden können.
Das ganze versuche ich mit QTreeWidget zu lösen, sieht eig. ganz gut aus. Das Einlesen und Abspeichern klappt auch wunderbar. Jedoch habe ich nun versucht, das Löschen zu implementieren.
Das klappt auch im TreeWidget hervorragend, er macht was er soll. Wenn ich dann jedoch das abspeichern möchte, erzeugt er mir eine XML-Datei, die das gelöschte Element immernoch enthält. Ich weiß jetzt ehrlich gesagt nicht, wie ich das dem Beibiegen soll?
Löschfunktion:
Code: Alles auswählen
QTreeWidgetItem *parent = currentItem->parent();
int index;
if(parent)
{
index = parent->indexOfChild(domTree->currentItem());
delete parent->takeChild(index);
}
else
{
index = domTree->indexOfTopLevelItem(domTree->currentItem());
delete domTree->takeTopLevelItem(index);
}
statusBar()->showMessage(tr("Kontakt erfolgreich geloescht"), 3000);
Code: Alles auswählen
if(domTree->write(&file))
statusBar()->showMessage(tr("Datei erfolgreich gespeichert"), 3000);
Code: Alles auswählen
QDomDocument domDocument;
DOMTree(QWidget *parent = 0);
DOMTree *domTree;
'ne Funktion wie refresh oder update gibt es ja nicht? Ich hab auch schon versucht, ihn nochmal alle items alphabetisch sortieren zu lassen, da müsste er ja eig. merken, dass da was gelöscht wurde..aber pustekuchen. Änderungen an den einzelnen Elementen werden ja auch an domTree vorgenommen und die werden auch 1a übernommen und exportiert. Nur beim Löschen hauts nicht hin..
Hat einer von euch da ne Idee zu? Wäre echt nett =)