IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Filtrer un QTreeView


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut Filtrer un QTreeView
    Etant donné que je souhaite uniquement afficher les parents d'un dom document, comment pourrais je faire pour filtrer le fichier xml qui le charge dans QTreeView?

  2. #2
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut
    tu entends quoi par les parents?

    Du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <node>
       <sousNode1>
       <sousNode2>
           <sousSousNode2>
           </sousSousNode2>
       </sousNode2>
       </sousNode1>
    <node>
    Tu veux garder quoi sur cet exemple?

    Deuxième question:
    tu utilise quelle méthode pour le XML? DOM ou QXmlStreamReader?

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut
    Citation Envoyé par cayou66 Voir le message
    tu entends quoi par les parents?

    Du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <node>
       <sousNode1>
       <sousNode2>
           <sousSousNode2>
           </sousSousNode2>
       </sousNode2>
       </sousNode1>
    <node>
    Tu veux garder quoi sur cet exemple?

    Deuxième question:
    tu utilise quelle méthode pour le XML? DOM ou QXmlStreamReader?
    J'utilise DOM document et je veux uniquement récupérer sousNode1

  4. #4
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    QDomElement root = doc.documentElement();
     
     
    QDomNode e = root.firstChild();
    while(!e.isNull())
    {
        QDomElement element= e.toElement();
        e = e.nextSibling();
    }
    Tu récupère les elements "element" de ton XML.

    Pour chaque niveau tu rajoute un firstChild() et tu descends dans l'arborescence.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    model = new DomModel(QDomDocument(), this);
    	view = new QTreeView(this);
    	QFile file(":/default.xml");
    	if (file.open(QIODevice::ReadOnly ))
    	{
            QDomDocument document;
    		if (document.setContent(&file))
    		{
    		    DomModel *newModel = new DomModel(document, this);
    		    view->setModel(newModel);
     
    		    // set context menu policy
    		    view->setContextMenuPolicy(Qt::CustomContextMenu);
     
    		    connect(view, SIGNAL(customContextMenuRequested(const QPoint&)),this, SLOT(ShowTreeContextMenu(const QPoint&)));
    		}
    		file.close();
    		ui.horizontalLayout_2->addWidget(view);
    	    setLayout(ui.horizontalLayout_2);
    	}
    Ceci est valable pour mon code ci dessus?Et comment pourrais je le modifier?

  6. #6
    Membre expérimenté Avatar de cayou66
    Inscrit en
    Décembre 2008
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 286
    Par défaut
    Juste après
    "if (document.setContent(&file))"

    Tu rajoutes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    file->close(); //tu n'a plus besoin du fichier en DOM
    QDomElement root = doc.documentElement();
    QDomNode e = root.firstChild();
    while(!e.isNull())
    {
            QDomElement element = e.toElement();
            //tu rajoutes comme tu veux les element au modele, genre 
            // tu récupère le tagName() que tu mets dans la QtreeView.
     
            e = e.nextSibling();
    }

Discussions similaires

  1. Filtrer une QTreeView
    Par jimaitou dans le forum Débuter
    Réponses: 7
    Dernier message: 16/06/2009, 21h36
  2. Filtrer les voyelles
    Par Babyneedle dans le forum Langage SQL
    Réponses: 9
    Dernier message: 22/12/2003, 15h12
  3. peut on filtrer les adresses IP ?
    Par travail dans le forum 4D
    Réponses: 2
    Dernier message: 04/06/2003, 14h16
  4. [Kylix] Labels du QTreeView tronqués
    Par Mister Nono dans le forum EDI
    Réponses: 3
    Dernier message: 05/11/2002, 19h45
  5. [VBA-E] [Excel] Filtrer le donnees d'une sheet
    Par donia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/09/2002, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo