Bonjour ,

voila j'ai un fichier xml dans lequel je lit des paramètre qui vont correspondre à différents boutons !
Or j'aimerais pour certains boutons ajouter un profil ! le fichier xml le voici

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
<?xml version="1.0" encoding="UTF-8"?>
<Villes>
 
		<Zones>
		<nomZone>Paris</nomZone>
		<villesZone>
			<nom>Paris Est</nom>
                                                 <prof>C:/ott.exe</prof>
		</villesZone>
		<villesZone>
			<nom>Paris Est</nom>
                                                <prof>C:/ip..exe</prof>
		</villesZone>
	</Zones>
 </Villes>

Le problème que j'ai c'est lorsque que je choisi une ville de la zone ça m'exécute le mauvais prof
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
 if(racine.tagName() == "Zones")
        {
            // On récupère le premier enfant de l'élément Zones c'est a dire <nomZone>
            QDomElement unElement = racine.firstChildElement();
 
            // On parcourt tous les enfants de l'élément <Zones>
            while(!unElement.isNull())
            {
 
                // Si on pointe sur un élément de type <villesZones> dans la partie <Zones>
                if(unElement.tagName() == "villesZone")
                {
 
                    QDomElement unElementVilleZone = unElement.firstChildElement();
 
                    // On parcourt tous les enfants de l'élément <villesZones>
                    while(!unElementVilleZone.isNull())
                    {
                        // Si l'enfant de l'élément site est l'élément <nom>
                        if(unElementVilleZone.tagName() == "nom")
                        {
                            // On récupère le texte contenu dans la balise <nom>
                            str_NomVilleZone = unElementVilleZone.text();
                            strl_listeVilleZone.append(str_NomVilleZone);
                        }
                         if(unElementVilleZone.tagName()== "prof"){
                                    str_ExecVille = unElementVilleZone.text();
 
                         }
                                unElementVilleZone = unElementVilleZone.nextSiblingElement();
                       }
                            set_ListeProfil_str(strl_listeProfils);
 
                            unElementVilleZone = unElementVilleZone.nextSiblingElement();
                }
                }
 
                // Permet d'aller au prochain enfant de <site> et de poursuivre la boucle
                unElement = unElement.nextSiblingElement();
            }
 
 
            // création d'une Zone contenant plusieurs villes sur la carte
            btn_Zone= new QPushButton(this);
            btn_Zone->resize(50,50);
            btn_Zone->setText(str_NomZone);
            btn_Zone->setToolTip(str_NomZone);
            btn_Zone->move(str_CoordxZone.toInt(),str_CoordyZone.toInt());
 
            set_ListeVilles_str(strl_listeVilleZone);
 
          QSignalMapper *signalMapper2 = new QSignalMapper(this);
                   QObject::connect(signalMapper2, SIGNAL(mapped(QString)), this, SLOT(afficher_ListeVilles(QString)));
                      //Mappage, puis connexion du signal au mapper
            signalMapper2->setMapping(btn_Zone,str_ExecVilleZone);
           QObject::connect(btn_Zone, SIGNAL(clicked()), signalMapper2, SLOT(map()));
 
        }
 
 
        // On va à l'élément fils de <root> suivant
        racine = racine.nextSiblingElement();
 
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
void Projet::afficher_ListeVilles(QString exec_VilleZone){
 
 
    bool ok;
    QString item = QInputDialog::getItem(this, tr("QInputDialog::getItem()"),
                                         tr("Villes Zone"), get_ListeVilles_str(), 0, false, &ok);
    if (ok && !item.isEmpty()){
        QMessageBox::information(this, "Coix de la ville appartenant à une zone", "La ville choisie est : "+item);
        process_Site->startDetached(exec_VilleZone);
    }
 
}
je bloque depuis des jours ! merci par avance pour l'aide !