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

Discussion :

Placer des points sur une carte

  1. #1
    Membre du Club
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Points : 44
    Points
    44
    Par défaut Placer des points sur une carte
    Bonjour

    j'ai une image de fond de widget représentant une carte de France , j'aimerais crée des boutons (pour que ce soit cliquable) placé à des endroits précis de ma fenêtre sur une ville par exemple et lorsque je clique sur un bouton cela m'affiche un messageBox

    J'ai mon image de fond placé mais impossible de placer les boutons

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     QPushButton *bouton1 = new QPushButton("Bonjour");
            QPushButton *bouton2 = new QPushButton("les");
            QPushButton *bouton3 = new QPushButton("Zéros");
            QPushButton *bouton4 = new QPushButton("!!!");
     
            //ui->gridLayout->addWidget(bouton1, 0, 2);
            ui->gridLayout->addWidget(bouton2, 0, 1);

    par exemple mon bouton1 devrait se placer à Paris et l'autre à Marseille mais impossible ...

    Merci par avance pour l'aider

  2. #2
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Beh par rapport au code que tu as fournis, tout dépend d'où est placer ton layout, et de ça taille etc .....

    Pourquoi ne pas faire ta fenêtre avec QtDesigner, tu galérerais beaucoup moins .

  3. #3
    Membre du Club
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Points : 44
    Points
    44
    Par défaut
    Merci de ta réponse

    j'ai juste la contrainte d'une image 783,800 pixel c'est tout après je fait ce que je veux tant que j'ai une ville cliquable !!

    c'est à dire "Pourquoi ne pas faire ta fenêtre avec QtDesigner, tu galérerais beaucoup moins " ? J'utilise mon .ui et j'ai placé un l'intérieur un gridLayout

  4. #4
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Bah justement pourquoi tu ne place pas les bouton avec qtDesigner, comme ça tu pourras les superposer facilement, sans passé forcément par un grid layout

  5. #5
    Membre du Club
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Points : 44
    Points
    44
    Par défaut
    Car je veux que ce soit paramétrable par l'utilisateur que ce soit lui qui dise bah j'ai tant de bouton sur mon image qui est une carte

    j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for (int x = 0; x < 24; x++)
            {
                for(int positionX=0 ; positionX <26 ; positionX++){
                    for(int positionY=0;positionY <20 ;positionY++ ){
                         QPushButton *bouton1 = new QPushButton("Bonjour");
                         bouton1->setFixedSize(30,30);
                            bouton1->move(positionX,positionY);
                          listePosBouton_ql.push_back(bouton1);
                       ui->gridLayout->addWidget(listePosBouton_ql.last(), listePosBouton_ql.last()->pos().x(), listePosBouton_ql.last()->pos().y());
     
                    }
                }
            }
    ça m'affiche pleins de boutons (j'ai pas pris en compte mon fichier encore) mais ça ne couvre pas toute la carte

  6. #6
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Tu pourrais expliciter le besoin? Pasque là je comprends pas grands chose ^^.

    Tu veux que l'utilisateur saisisse le nombre de bouton, et que chaque bouton soit positionner sur une ville que l'utilisateur a choisie?

  7. #7
    Membre du Club
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Points : 44
    Points
    44
    Par défaut
    Je voit !
    Je m'explique : j'ai une carte de France
    mon application est pour des loueur de véhicule

    En gros j'ai un fichier de configuration de cette sorte :
    nomVille = 10 , 10 (les coordonnées que je renseigne moi même dans le fichier )
    c'est une volonté de l'utilisateur qui peux à tout moment ajouter une ville lui même sans compiler le code !

    Je souhaite pouvoir charger la carte , ça m'affiche un point en fonction du fichier j'ai dans des variables récupéré le nom de la ville ainsi que les coordonnées déjà
    je n'ai qu'à placer sur ma carte les villes et lorsque je clique sur la ville ça m'affiche un messagebox

    suis-je claire ?

  8. #8
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Ah, beaucoup plus clair .

    Les coordonnées de ton fichier, c'est relatif à quoi? .

  9. #9
    Membre du Club
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Points : 44
    Points
    44
    Par défaut
    Ouf

    On m'a fournit la carte c'était un site en html j'ai ça comme info :
    Lille = 450,60

    ma carte fait setFixedSize(783,800);
    mais je peux les modifier à mon bon vouloir du moment que ça m'affiche correctement le point sur la ville

    je n'arrive plus à avancer , mon code m'affiche lille au mauvais endroit

  10. #10
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Donc pour résumer, si je comprends bien:
    _ Tu as une carte (surement en jpg ou autre) qui fait "x" par "y"
    _ tu as un nombre de ville définies dans un fichier avec les coordonnées compris dans (vx = 0-x;vy = 0 - y) (vx et vy étant les coordonées des villes).
    _ tu as une fenetre qui affiche cette carte et tu veux placer les bouton sur ces villes.

    donc pour lille, il faut que tu place un bouton en coordonnées (450,60).

    Tu aurais donc pas la solution juste en posant clairement cet énoncé? ^^. (si tu trouves pas, c'est que tu n'as pas très bien compris le fonctionnement des layout de Qt ).

  11. #11
    Membre du Club
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Points : 44
    Points
    44
    Par défaut
    C'est exactement ça !!

    Je ne trouve pas je sais que c'est tout bête mais je bloque ..
    J'ai pris un système de gridLayout
    j'arrive à placer des points mais Lille se trouve en dessous de Paris ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    for (int x = 0; x < 24; x++)
              {
                  for(int positionX=0 ; positionX <10 ; positionX++){
                      for(int positionY=0;positionY <10 ;positionY++ ){
              btn_nomVille = new QPushButton(nomVille);
              btn_nomVille->setFixedSize(20,20);
     
              btn_nomVille->move(ligneValeurx.toInt(),ligneValeury.toInt());
              ui->gridLayout->addWidget(btn_nomVille, ligneValeurx.toInt(), ligneValeury.toInt());
                      }
     
                  }
              }
    Merci pour ton aide

  12. #12
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Alors, voici l'explication, tu voudrais placer tes points en absolu, or tu utilises un layout, donc tes points sont placés en relatif.

    Les coordonnées que tu passes au gridLayout ne correspondent pas aux coordonnées du bouton, mais aux coordonnées de la grille de ton layout.

    Bref tout ça pour dire, n'utilise pas de layout, place directement tes points dans le parents de ton layout. Ainsi ils seront placé correctement.

    (on utilise un layout lorsque l'on a besoin de pouvoir modifier la taille de la fenêtre ou d'aligner des élément entre eux, par contre en coordonnées absolu, on utilise pas de layout car ils sont utilisé pour définir des coordonnées relatives et non pas absolue ).

    voila, je pense que ça solutionne ton problème .

    PS: je connaissais le soucis depuis le début mais je voulais essayer de te faire deviner la réponse, beaucoup plus intéressant pour toi que de te donner la solution de suite .

  13. #13
    Membre du Club
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Points : 44
    Points
    44
    Par défaut
    Merci skeud !!

    j'avais essayé cette solution ! j'ai tout enlevé et j'ai juste gardé mon QWidget

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for (int x = 0; x < 24; x++) {
        for(int positionX=0 ; positionX <10 ; positionX++) {
            for(int positionY=0;positionY <10 ;positionY++ ) {
                btn_nomVille = new QPushButton(nomVille);
                btn_nomVille->setFixedSize(20,20);
     
                btn_nomVille->move(ligneValeurx.toInt(),ligneValeury.toInt());
            }
     
        }
    }
    et j'ai enlevé la partie du mon gridLayout mais le bouton ne s'affiche pas !
    Je suis désolée après une journée de code mon cerveau est hs !!

  14. #14
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Le bouton ne s'affiche pas car il n'est relié a aucun parent, du coup lors du passage de l'affichage de ta fenetre, il ne passera pas dans la méthode draw qui est appelé par le parent.Il faut que tu l'attache (fait longtemps que j'ai pas fait de Qt donc je me rappelle plus exactement comment on fait, mais je crois que tu dois passer le parent dans le constructeur).

  15. #15
    Membre du Club
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Points : 44
    Points
    44
    Par défaut
    Merci merci merci ça fonctionne

    tu avais raison !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     btn_nomVille = new QPushButton(nomVille,this);

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

Discussions similaires

  1. Localiser des points sur une carte géographique
    Par Msysteme dans le forum SIG : Système d'information Géographique
    Réponses: 4
    Dernier message: 28/07/2014, 12h05
  2. Afficher des points sur une carte
    Par atta09 dans le forum Discussions diverses
    Réponses: 0
    Dernier message: 29/07/2013, 11h59
  3. Réponses: 9
    Dernier message: 20/07/2012, 16h15
  4. Placer des icônes sur une carte
    Par joplayer dans le forum C#
    Réponses: 4
    Dernier message: 29/01/2012, 15h25
  5. Placer des points sur une image
    Par vallgui dans le forum WinDev
    Réponses: 9
    Dernier message: 22/01/2008, 15h19

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