2010-02-23 2 views

답변

17

:

최상위 항목과 트리의 낮은 레벨에서 그 주된 차이는 최상위 레벨 항목에는 부모()이 없다는 것이다. 이 정보는 을 사용하여 항목 간의 차이를 알려주고 이며 을 삽입하고 트리에서 항목을 제거하는 경우를 아는 것이 유용합니다.

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

나는 QTreeWidgetItem의 부모가 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"; 
} 

희망 하시겠습니까?

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

최상위 항목에는 상위 항목이 없습니다.

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

또는 람다 함수를 사용하십시오.

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

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