2010-02-23 59 views

回答

17

the documentation引用:

頂層 項和那些在較低級別 樹之間的主要區別在於一個頂級項目沒有 父()。這些信息可用於 來分辨項目之間的差異, ,並且在插入 並從樹中刪除項目時知道這一點很有用。

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); 
} 

或者使用lambda函數。

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

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