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 :

afficher des données du fichier xml dans QTableView


Sujet :

Qt

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Points : 13
    Points
    13
    Par défaut afficher des données du fichier xml dans QTableView
    veuillez m'aider à développer une petite application qui affiche et modifie le continu d'un fichier xml dans une QTableView

    merci de m'aider tenant compte que je suis débutant au développement QT

    j'ai réussit à faire deux interfaces avec Qt Designer: l'une contient un QTableView avec des boutons (afficher,ajouter,modifier,supprimer)
    et l'autre que je veux l'appeler lors de clic sur bouton "ajout" ou "modifier" ou "supprimer" (cette 2ème interface contient 4 lineEdit correspondant aux données du fichier xml: nom,prenom,telephone,localisation et 2 boutons(ok,annuler), lors du clik sur ok les données seront ajoutés ou modifiés ou supprimés (selon l'appel) dans le fichier xml)
    mon fichier xml est:
    Code xml : 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
    21
    22
    23
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <personne>
    <client>
        <nom>ben salah</nom>
        <prenom>ali</prenom>
        <telephone>22541734</telephone>
        <localisation>tunis</localisation>
    </client>
     
    <client>
        <nom>maaloul</nom>
        <prenom>nabil</prenom>
        <telephone>21025014</telephone>
        <localisation>nabeul</localisation>
    </client>
    <client>
        <nom>toto</nom>
        <prenom>jojo</prenom>
        <telephone>40538462</telephone>
        <localisation>sousse</localisation>
    </client>
     
    </personne>

    svp un peu d'aide !!!!

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 188
    Points : 248
    Points
    248
    Par défaut
    Sur quoi veux-tu de l'aide ? Comment lire/écrire un fichier XML ?
    si c'est le cas tu peux aller voir la doc sur QDomDocument dispo ici.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    j'ai pu lire le fichier xml dans des message box mais je veux mettre le resultat dans un TableView!!
    en fait je suis bloqué là où je peux récupéré les données du fichier xml càd comment je peux le visualisé dans QTableView,
    si tu peux me donner un petit exemple pour mettre des données dans le QTableView et le visualiser.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 188
    Points : 248
    Points
    248
    Par défaut
    Tu as la doc Qt avec un exemple

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    merci, mais j'ai tjr le pb de rien qui s'affiche . comme si il n'y a aucun traitement que j'ai effectué:
    bon voici ce que j'ai fait:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    QTableView table;
    	QStandardItemModel model(3, 4);
    	QStandardItem *item = new QStandardItem();
     
    			 QDomDocument dom("mon_xml");
    			 QFile file("client.xml");
    			 if (!file.open(QIODevice::ReadOnly))
    				 return;
    			 if (!dom.setContent(&file)) 
    			 {
    				 file.close();
    				 return;
    			 }
    				file.close();
     
    	int i;
    	QDomElement racine = dom.documentElement();	 
    	racine = racine.firstChildElement();
     
    	while(!racine.isNull())
    	{
    	   if(racine.tagName() == "client")
    		{
    			QDomElement unElement = racine.firstChildElement();
     
    			while(!unElement.isNull())
    			{
    				if(unElement.tagName() == "nom")
    				{
    					QString strNom = unElement.text();
    					item->setText(strNom);
    					model.setItem(i,0,item);
    				}
     
    				else if(unElement.tagName() == "prenom") 
    				{
    					QString strPrenom = unElement.text();
    					item->setText(strPrenom);
    					model.setItem(i,1,item);
    				}
    				else if(unElement.tagName() == "telephone") 
    				{
    					QString strTelephone = unElement.text();
    					item->setText(strTelephone);
    					model.setItem(i,2,item);
    				}
    				else if(unElement.tagName() == "localisation") 
    				{
    					QString strLocalisation = unElement.text();
    					item->setText(strLocalisation);
    					model.setItem(i,3,item);
    				}
    				i++;
    				unElement = unElement.nextSiblingElement();
    			}
     
    		}
     
    		 racine = racine.nextSiblingElement();
    		 table.setModel(&model);
    	}
    j'ai essayé de mettre aussi table.show mais il ne connait pas la methode "show" pour table et tjr rien ne se fasse...
    un peu d'aide svp!!!

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2010
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    C bon j'ai trouvé la solution que je veux et voici mon code:
    code c++:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    { QStandardItemModel *model = new QStandardItemModel(0, 4,this);
    	model->setHeaderData(0, Qt::Horizontal, tr("Nom"));
    	model->setHeaderData(1, Qt::Horizontal, tr("prenom"));
    	model->setHeaderData(2, Qt::Horizontal, tr("telephone"));
    	model->setHeaderData(3, Qt::Horizontal, tr("localisation"));
     
     
     
    			 QDomDocument dom("mon_xml");
    			 QFile file("client.xml");
    			 if (!file.open(QIODevice::ReadOnly))
    				 return;
    			 if (!dom.setContent(&file)) 
    			 {
    				 file.close();
    				 return;
    			 }
    				file.close();
     
     
    	QDomElement racine = dom.documentElement();	 
    	racine = racine.firstChildElement();
    	int l=0;
    	while(!racine.isNull())
    	{
    		int c=0;
    	   if(racine.tagName() == "client")
    		{
    			QDomElement unElement = racine.firstChildElement();
     
    			while(!unElement.isNull())
    			{
     
    				if(unElement.tagName() == "nom")
    				{
    					QString strNom = unElement.text();
    					QStandardItem *item = new QStandardItem();
    					item->setText(strNom);
    					model->setItem(l,c,item);
    				}
     
    				else if(unElement.tagName() == "prenom") 
    				{
    					QString strPrenom = unElement.text();
    					QStandardItem *item = new QStandardItem();
    					item->setText(strPrenom);
    					model->setItem(l,c,item);
    				}
    				else if(unElement.tagName() == "telephone") 
    				{
    					QString strTelephone = unElement.text();
    					QStandardItem *item = new QStandardItem();
    					item->setText(strTelephone);
    					model->setItem(l,c,item);
    				}
    				else if(unElement.tagName() == "localisation") 
    				{
    					QString strLocalisation = unElement.text();
    					QStandardItem *item = new QStandardItem();
    					item->setText(strLocalisation);
    					model->setItem(l,c,item);
    				}
    				c++;
    				unElement = unElement.nextSiblingElement();
    			}
     
    		}
     
    		 racine = racine.nextSiblingElement();
    		l++;
    	}
     ui.tableView->setModel(model);	
     ui.tableView->resizeColumnsToContents();
     ui.tableView->resizeRowsToContents();
     
    }

  7. #7
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Points : 8 140
    Points
    8 140
    Par défaut
    ?

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

Discussions similaires

  1. extraction des données de fichier txt dans un tableau?
    Par lina_21 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 18/03/2010, 11h47
  2. Afficher des données d'un GridView dans des TextBox
    Par 3KyNoX dans le forum ASP.NET
    Réponses: 4
    Dernier message: 11/02/2009, 17h51
  3. Réponses: 1
    Dernier message: 08/12/2008, 04h35
  4. Réponses: 1
    Dernier message: 19/01/2006, 19h22

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