Y a-t-il une façon de savoir si le qtreewidgetem code> je regarde est le niveau supérieur ou non? J'ai un programme qui s'écrase lorsque j'essaie de prendre le texte d'un parent si l'article est le niveau supérieur (sans parent). P>
4 Réponses :
citant La documentation :
La principale différence entre le niveau supérieur articles et ceux qui ont des niveaux inférieurs de la arbre est qu'un article de niveau supérieur n'a pas parent () em>. Ces informations peuvent être utilisées dire la différence entre les articles, et est utile de savoir quand l'insertion et éliminer les articles de l'arbre. P> blockQuote>
xxx pré> p>
Je suggérerais que vous puissiez vérifier si le parent de Qtreewidgetem est NULL.
const int FIRST_NODE_INDEX = 0;
QTreeWidget* pTreeWidget = new QTreeWidget(this);
pTreeWidget->setColumnCount(1);
QList<QTreeWidgetItem *> ItemList;
for (int i = 0; i < 10; ++i)
{
ItemList.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item: %1").arg(i))));
}
pTreeWidget->insertTopLevelItems(0, ItemList);
if(!ItemList.at(FIRST_NODE_INDEX)->parent())
{
qDebug() << "is TopLevel";
}
treeWidget->indexOfTopLevelItem(item) > -1
Les éléments de niveau supérieur n'ont aucun élément parent.
void function()
{
// ...
auto isTopLevel = []( QTreeWidgetItem* aItem ){ return ( aItem->parent() == nullptr ); };
// ...
if ( isTopLevel( item ) )
{
// ...
}
}