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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
| void Carte::Configration()
{
QString str_NomZone , str_CoordxZone,str_CoordyZone , str_NomVilleZone , str_ExecVilleZone;
QStringList strl_listeVilleZone;
QDomDocument doc;
// ouverture du fichier xml en fonction du choix projet
QFile file("/proj.xml");
file.open(QIODevice::ReadOnly);
doc.setContent(&file);
QDomElement racine = doc.documentElement();
racine = racine.firstChildElement();
//Boucle permettant la navigation dans le fichier XML
while(!racine.isNull())
{
if(racine.tagName() == "Zones")
{
QDomElement unElement = racine.firstChildElement();
while(!unElement.isNull())
{
// Si l'enfant de l'élément Zones est l'élément <nomZone>
if(unElement.tagName() == "nomZone")
{
// On récupère le texte contenu dans la balise <nom>
str_NomZone = unElement.text();
}
// Si l'enfant de l'élément <Zones> est <coordXZone>
if(unElement.tagName() == "coordXZone")
{
// On récupère le texte contenu dans la balise <coordXZone>
str_CoordxZone = unElement.text();
}
// Si l'enfant de l'élément <Zones> est <coordYZone>
if(unElement.tagName() == "coordYZone")
{
// On récupère le texte contenu dans la balise <coordYZone>
str_CoordyZone = unElement.text();
}
// 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();
//placement de chaque ville de la zone dans une liste
strl_listeVilleZone.append(str_NomVilleZone);
set_ListeVilles_str(strl_listeVilleZone);
}
// Si l'enfant de l'élément <villeszone> est <exec>
else if(unElementVilleZone.tagName() == "execZone")
{
// On récupère le texte contenu dans la balise <exec>
str_ExecVilleZone = unElementVilleZone.text();
}
unElementVilleZone = unElementVilleZone.nextSiblingElement();
}
}
// Permet d'aller au prochain enfant de <villesZones> 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(m_largBtnZone,m_hautBtnZone);
btn_Zone->setText(str_NomZone);
btn_Zone->setToolTip(str_NomZone);
btn_Zone->move(str_CoordxZone.toInt(),str_CoordyZone.toInt());
// set_ListeVilles_str(strl_listeVilleZone);
QObject::connect(btn_Zone, SIGNAL(clicked()), this, SLOT(afficher_ListeVilles()));
}
// On va à l'élément fils de <root> suivant
racine = racine.nextSiblingElement();
}
file.close();
} |
Partager