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;
}
È stato utile?

Soluzione

deleteIngne 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)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top