Frage

Was ist der beste Weg, um eine Reihe (QTreeWidgetItem) von einem QTreeWidget?

entfernen

Der QTreeWidget Inhalt wurde eingestellt von:

myQTreeWidget->insertTopLevelItems(0, items); // items = QList<QTreeWidgetItem*>

dann entferne ich einen Artikel von meinem QList „Artikel“ und ich versuche, die QTreeWidget zu löschen / Reset

packList->clear();    
packList->insertTopLevelItems(0, items);

aber meine app stürzt hier! Vorschläge?

War es hilfreich?

Lösung

Ihr Problem ist, dass packList->clear() Aufruf der Baum-Widget Artikel vom Baum enthalten löscht. (Lesen Sie die Dokumentation über QTreeWidget::clear(), die eine Notiz für die Elemente enthält aus dem Baum entfernt werden vor dem Löschen.) Verringern Sie entweder einen Weg finden, um die Elemente zu entfernen oder nicht hält eine Liste von ihnen getrennt von dem Baum.

Auf einer leicht bezogenen Note, wenn Sie versuchen, den Überblick über andere Daten zu halten zusammen mit dem Baum, würde ich empfehlen Sie versuchen, die Modelle Paradigma zu verwenden. In nicht-trivialen Fällen hat es sich in der Regel meine die Mühe wert gewesen, diese Technik zu konvertieren, anstatt die Widgets / Elemente verwendet wird.

Andere Tipps

Von dem, was dieser Dokumentation sagt, sollten Sie sein die Lage, es zu tun mit:

packList->takeTopLevelItem(index);

Welche entfernt und gibt den Punkt an dem gelieferten Index zurück.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top