7
votes

Trouver si qtreewidgetem est le plus haut niveau

Y a-t-il une façon de savoir si le qtreewidgetem 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).


0 commentaires

4 Réponses :


28
votes

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 () . 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. xxx


0 commentaires

4
votes

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


0 commentaires

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

0 commentaires

2
votes

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 ) )
    {
        // ...
    }
}


0 commentaires