2010-02-23 6 views

Répondre

17

mentionnant the documentation:

La principale différence entre le haut niveau éléments et celles des niveaux inférieurs de l'arbre est qu'un élément de niveau supérieur n'a pas de parent (). Cette information peut être utilisée pour faire la différence entre les éléments, et est utile de savoir lors de l'insertion et en supprimant des éléments de l'arborescence.

if (!node.parent()) { 
    // top-level item 
} 
3

Je suggère que vous pouvez vérifier si le parent du QTreeWidgetItem 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"; 
} 

Espérons que ça aide!

2
treeWidget->indexOfTopLevelItem(item) > -1 
2

Les éléments de plus haut niveau n'ont aucun élément parent.

bool isTopLevelItem(QTreeWidgetItem* aItem) 
{ 
    return (aItem->parent() == nullptr); 
} 

Ou en utilisant une fonction lambda.

void function() 
{ 
    // ... 
    auto isTopLevel = [](QTreeWidgetItem* aItem){ return (aItem->parent() == nullptr); }; 
    // ... 

    if (isTopLevel(item)) 
    { 
     // ... 
    } 
} 
Questions connexes