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();
} |
Partager