HowTo trouver Point dans QAbstractItemModel et QTreeView classe?

Question: comment trouver les sous-élément, dans un QTreeView chargé QAbstractItemModel modèle avec model->match() méthode?

Problème: model->match() ne pouvez pas trouver les sous-éléments, wtf?!

Voici l'exemple:

le texte d'alt http://www.freeimagehosting.net/uploads/179eee87e3.png

Comme vous pouvez le voir sur la photo, je suis en train de développer Layouts sous avec ce code:

void Dialog::restoreState(void)
{
    //get list
    QSettings settings("settings.ini", QSettings::IniFormat);
    settings.beginGroup("MainWindow");
    QStringList List = settings.value("ExpandedItems").toStringList();
    settings.endGroup();

    foreach (QString item, List)
    {
        if (item.contains('|'))
            item = item.split('|').last();
        //search `item` text in model
        QModelIndexList Items = model->match(model->index(0, 0), Qt::DisplayRole, QVariant::fromValue(item));
        if (!Items.isEmpty())
        {
            //Information: with this code, expands ONLY first level in QTreeView
            view->setExpanded(Items.first(), true);
        }
    }
}

settings.ini fichier contient:

[MainWindow]
ExpandedItems=Using Containers, Connection Editing Mode, Form Editing Mode, Form Editing Mode|Layouts

PS: éléments racine se développe avec succès sur démarrer!

Si vous utilisez votre propre élément de modèle, vous pouvez simplement réimplémenter méthode match pour s'adapter à vos besoins (comme docs dit)
Klimek Par exemple, j'achète une voiture, pourquoi dois-je installer la cinquième roue, si la voiture peut fonctionner uniquement avec quatre roues? L'autre question, si cette méthode fonctionne vraiment que les docs disent...
Eh bien, comme il n'y a rien sur le match méthode est récursive, je gues il n'est pas, parce qu'il est mis en œuvre dans QAbstractItemModel, la sorcière ne sait rien à propos de n'importe quel arbre (ou d'autres) de la hiérarchie. C'est pourquoi vous devez ré-écrire de match méthode si vous voulez vous rendre récursif.
Oh, et, selon vous, "voiture"... eh Bien, c'est mieux d'avoir de la cinquième (de rechange) de la roue, dans le cas où si votre autre roue obtenir de l'appartement..
C'est dans le mauvais sens...

OriginalL'auteur mosg | 2010-07-20