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 :

[C++] problème dans un tableau

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Par défaut [C++] problème dans un tableau
    Bonjour,
    j'ai un problème en ce moment et je ne sais pas trop comment le résoudre.

    j'aimerai vider un tableau de cases qui se présente comme un échiquier (donc des cases identifiées par A1, A2, B7, etc.)

    je peut les vider une par une en faisant "A1->clear();" par exemple mais j'aimerai pouvoir l'utiliser dans une conditionnelle.

    Comment faire dans ma conditionnelle pour lui dire de vider toutes les cases depuis A1 jusqu'a H8??

    D'avance merci !

  2. #2
    Membre expérimenté
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 181
    Par défaut
    j'aimerai vider un tableau de cases
    ...
    A1->clear();
    C'est à dire ? Tu as un tableau (dans ce cas montre nous le code) ou bien tu as déclaré toutes tes cases une à une ?
    Tu peux faire simplement un tableau à deux dimensions : une dimension étant représentée par les chiffres et l'autre par les lettres (tu fais une correspondance entre les lettres et les indices réels du tableau), ou encore utiliser les conteneurs de la STL...

    Précise tes besoins !

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Par défaut
    en fait le tableau représente un tableau de QLabels crée sous Qt.

    Il s'agit d'un échiquier. Les cases ont étés créées une à une avec l'éditeur et sont toutes identifiés par leur position (donc A1 pour la premiere en haut à gauche, puis A2, A3, .., jusqu'a H8).

    Lors de l'initialisation de l'échiquier, les pièces sont replacés comme au début d'une partie (une par une aussi, c'est un peu moche). Par exemple pour l'initialisation des tours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // REMPLISSAGE DE L'ECHIQUIER
    // tours
    A1->setPixmap(QPixmap(QString::fromUtf8(":/Images/tourblanche.png")));
    H1->setPixmap(QPixmap(QString::fromUtf8(":/Images/tourblanche.png")));
    A8->setPixmap(QPixmap(QString::fromUtf8(":/Images/tournoire.png")));
    H8->setPixmap(QPixmap(QString::fromUtf8(":/Images/tournoire.png")));
    Seulement les autres cases, vides au début de partie ne sont pas vidés lors du lancement d'une nouvelle partie.

    Je voudrais donc, dans une boucle, "vider" toutes les cases entre A3 et A6 ainsi qu'entre A et H.

    Possible avec un tableau à 2 dimensions [lettre][numero] ??

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Je comprend pas. Cela veut dire que quelque part tu as 64 variables : A1, A2,..., H7, H8? Pourquoi ne pas utiliser un conteneur ou un tableau (boost.Array semble indiqué dans ce cas non?)?

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Par défaut
    oui j'ai effectivement 64 variables de type QLabel, créées automatiquement par le designer Qt. Cependant elles sont toutes contenues dans un layout de grille, pour la mise en forme.

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    A ce moment, la solution est certainement spécifique à Qt. Je déplace le fil dans le bon forum.

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Slici Voir le message
    oui j'ai effectivement 64 variables de type QLabel, créées automatiquement par le designer Qt. Cependant elles sont toutes contenues dans un layout de grille, pour la mise en forme.

    Pourquoi tu te complique la vie comme cela?????

    Pourquoi ne pas avoir utilisé un tableau de QLabel*?
    Au pire tu peut facilement les retrouver à partir de la widget parent
    http://qt.developpez.com/doc/4.4/qobject/#findchild

    La tu te complique énormément la tâche. Gérer 64 variables à la main!!!!!

    En plus tu semble avoir mélanger l'affichage (QLabel ,...) avec ton code pour le jeux.

    Tu devrais séparer l'ihm de tes traitements. L'ihm ne devrais être qu'une interface pour manipuler et afficher des données utilisées par ton code. Et tu devrais pouvoir changer d'affichage facilement. Par exemple en utilisant les GraphicsView au lieu de QLabel qui sont certainement plus adapté à ce que tu veut faire.

  8. #8
    Membre très actif
    Avatar de FloMo
    Homme Profil pro
    Freelance iOS
    Inscrit en
    Juillet 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Freelance iOS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 726
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    Tu devrais séparer l'ihm de tes traitements. L'ihm ne devrais être qu'une interface pour manipuler et afficher des données utilisées par ton code. Et tu devrais pouvoir changer d'affichage facilement. Par exemple en utilisant les GraphicsView au lieu de QLabel qui sont certainement plus adapté à ce que tu veut faire.
    Je confirme : avec QGraphicsView, c'est beaucoup plus simple. Tu te prendras moins la tête sur la partie graphique et tu pourras avoir un résultat plus sympa (animations...)

  9. #9
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Par défaut
    comment utiliser un tableau de QLabel?

    je le déclare comme ceci dans le .h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        private:
            QLabel *Echi[10];
    puis il est crée dans le .cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echiquier::echiquier(QMainWindow *parent) : QMainWindow(parent)
    {
        setupUi(this); // A faire en premier
        QLabel *Echi[10] = new QLabel(this);
    }
    puis je ne sais pas comment manipuler ce tableau :

    j'essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Echi[1]->setText("coucou");
    mais cela fait planter mon programme...

  10. #10
    Membre très actif
    Avatar de FloMo
    Homme Profil pro
    Freelance iOS
    Inscrit en
    Juillet 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Freelance iOS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 726
    Par défaut
    Petit rappel : si ton tableau à une taille de 10, ses indices iront de 0 à 9, donc aller au 10 plante forcément.

    Utilise plutôt un QList<QLabel *> .

Discussions similaires

  1. [WD-2010] Problème dans mon tableau.
    Par starsat4200 dans le forum Word
    Réponses: 1
    Dernier message: 14/08/2014, 23h35
  2. Problème dans un tableau
    Par fraisa1985 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 26/03/2014, 19h38
  3. Problème dans mon TABLEAU
    Par Fabdunet13 dans le forum VB.NET
    Réponses: 9
    Dernier message: 11/10/2013, 18h12
  4. Problème dans le tableau
    Par anassinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 5
    Dernier message: 20/09/2013, 20h24
  5. Problème dans un tableau
    Par a_karim_fr dans le forum Cobol
    Réponses: 8
    Dernier message: 20/11/2009, 16h58

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