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 :

TinyXml et Qtreeview


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut TinyXml et Qtreeview
    Bonjour

    Je viens solliciter un peu d'aide aujourd'hui au sujet de la librairie tinyXml.
    Je débute totalement dans cette librairie (ainsi que dans le XML d'ailleurs), mais pourtant je me vois dans l'obligation de l'utiliser dans mon projet pour remplir une Qtreeview, et donc avec Qt.
    J'ai lu le tutoriel pour cette librairie, et à la suite de ça j'ai choisi de partir sur cette méthode pour construire ma treeview :

    - Lecture de mon fichier xml et stockage dans une list (comme dans le tuto)
    - Création d'un Qlist avec sa méthode fromStdList()
    - Utilisation de l'objet QtreeWidget plutôt que QTreeview afin de pouvoir utiliser le constructeur de QtreeWidget à partir d'une list, mais reste à savoir comme avoir une QList de QtreeWidgetItem...

    Je ne vous mets pas de code, sachant que je n'ai pas encore commencé cette étape dans mon projet, parce que je me dis que je dois avoir louper quelque chose dans la documentation, parce que ma solution me parait vraiment "laborieuse".

    Je viens donc poster ici dans le but d'améliorer ma vision des choses et si possible de trouver une autre solution grâce à votre aide.

    Je vous remercie par avance

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Pourquoi utiliser TinyXML ? Qt dispose de tout ce qui est nécessaire pour le XML !
    http://qt.developpez.com/faq/?page=xml
    Puis, pour approfondir :
    http://qt.developpez.com/doc/4.5/qtxml/
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre confirmé Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut
    Je sais que Qt permet déjà de gérer toute une partie de XML, le seul problème c'est que dans le cadre de mon projet en entreprise, je me vois dans l'obligation d'utiliser tinyXml pour diverses raisons...
    C'est pourquoi je me tourne vers cette solution

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Je n'ai pas encore beaucoup utilisé les QTreeWidget, ni TinyXML, mais voici ce que je peux dire.

    Chaque noeud de ton arbre XML correspond à un QTreeWidgetItem. Chaque enfant du noeud correspond à un Item enfant du Item principal (tu reprends l'arborescence XML et tu en refais une arborescence de QTreeWidgetItem). Ensuite, tu affiches cette série d'items dans le widget.

    Ce n'est peut-être pas d'une clareté transcendante, je te renvoie donc aux documentations.
    QTreeWidget
    QTreeWidgetItem
    TinyXML (mais je suppose que tu connais déjà...)
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Membre confirmé Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut
    C'est sur cette technique de construction de ma treeview que je me suis dirigé, je travaille dessus...
    Merci de ton aide, je vous tiens au courant

  6. #6
    Membre confirmé Avatar de Furr
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Par défaut
    J'ai trouvé une solution, qui fonctionne très bien pour mon format de fichier xml, c'est à dire avec "deux étages" de balises :

    Code c++ : 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
    TiXmlDocument doc(chemin);  //chemin est le chemin du fichier passé en paramètre de ma méthode
    if (doc.LoadFile()) {
    	TiXmlElement *root = doc.FirstChildElement();
    	QTreeWidgetItem *c = ui->treeView->topLevelItem(0); // treeview est un QTreeWidgetItem et ui est la GUI de base
    	c->setText(0, "root"); // simple affichage
    	TiXmlElement *elem = root->FirstChildElement();
    	while (elem) { // boucle du premier etage
    		TiXmlElement *elem2 = elem->FirstChildElement();
    		QTreeWidgetItem *c1 = new QTreeWidgetItem(item);
    		c1->setText(0, elem->Attribute("Title"));
    		while (elem2) { // boucle du deuxieme etage
    			QTreeWidgetItem *c2 = new QTreeWidgetItem(c1);
    			c2->setText(0, elem2->Attribute("Label"));
    			elem2 = elem2->NextSiblingElement(); //deuxieme etage suivant
    		}
    		elem = elem->NextSiblingElement(); // premier etage suivant
    	}
    }

    Voila je passe le post en résolu
    Merci de ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XML] TinyXml -> Erreur?
    Par JulienDuSud dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 08/08/2007, 21h17
  2. utiliser TinyXML
    Par Blowih dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 07/11/2006, 21h42
  3. Besoin d'aide avec TinyXML
    Par Clad3 dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 15/08/2005, 18h20
  4. [Kylix] Labels du QTreeView tronqués
    Par Mister Nono dans le forum EDI
    Réponses: 3
    Dernier message: 05/11/2002, 19h45

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