Come si elimina un qtreewidgetItem di alto livello da un qtreewidget?
-
29-10-2019 - |
Domanda
Sto tentando di rimuovere un elemento del widget ad albero di alto livello se non ci sono nodi figlio all'interno dell'elemento di alto livello. Qual è il modo corretto per farlo? Non riesco a trovare la chiamata API all'interno della documentazione di QT. È sicuro chiamare eliminare eliminare l'articolo del widget dell'albero di alto livello? Non ho ancora riscontrato alcun problema, ma mi piacerebbe sapere se è una pratica sicura. Grazie mille.
if(topLevelTreeWidgetItem->childCount() > 1) {
topLevelTreeWidgetItem->removeChild(childItem);
}
else
{
delete topLevelTreeWidgetItem;
}
Soluzione
delete
Ingne un qtreewidgetItem direttamente è perfettamente sicuro.
Secondo la documentazione per ~ Qtreewidgetitem ():
Distrugge questo oggetto per widget dell'albero. L'articolo verrà rimosso da Qtreewidgets a cui è stato aggiunto. Ciò rende sicuro eliminare un articolo in qualsiasi momento.
Ho usato delete
In molti QtreewidgetItem in pratica e funziona abbastanza bene.
Altri suggerimenti
Per eliminare una chiamata di elemento di alto livello Qtreewidget :: takeTopleVitem metodo e quindi eliminare l'elemento restituito:
delete treeWidget->takeTopLevelItem(index);
Dove l'indice è indice dell'articolo da rimuovere.
Funzione takechild funziona solo con qtreewidgetitem. Con Qtreewidget, puoi usare QTREEWIDGET :: TAKETHILLITEM (IND INDICE)