Ceibxl
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-15%
Le deal à ne pas rater :
(Adhérents) LEGO® Icons 10318 Le Concorde
169.99 € 199.99 €
Voir le deal

CPP - Démineur

5 participants

Page 2 sur 2 Précédent  1, 2

Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Sardine Dim 18 Avr - 15:51

File toute ta classe, là où t'en es arrivé
Sardine
Sardine

Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Nicki Dim 18 Avr - 15:58

bah en faite tu as deja presque tout Very Happy

Code:
/*
 * DemineurObservateur.cpp
 *
 *  Created on: 8 avr. 2010
 *      Author: apo
 */

#include "DemineurObservateur.h"
#include <iostream>
#include "Header/parcelle.h"

DemineurObservateur::DemineurObservateur(DemineurSDO* demineur) {
   monDemineur = demineur;

   vector<vector<Parcelle> > terrain;
   terrain=monDemineur->getTerrain();

   int taille = monDemineur->getColonne() * monDemineur->getLigne();

   QPushButton* tab[taille];
   QVBoxLayout* vLayout= new QVBoxLayout;

   int pos = 0;

   for (vector<vector<Parcelle> >::iterator it = terrain.begin(); it!= terrain.end(); ++it) {
      QHBoxLayout* hLayout = new QHBoxLayout;
      for (vector<Parcelle>::iterator it2 = it->begin(); it2 != it->end(); ++it2) {
         tab[pos]=new QPushButton("");
         hLayout->addWidget(tab[pos]);
      }
      vLayout->addLayout(hLayout);
   }

   this->setLayout(vLayout);
   this->show();
}

DemineurObservateur::~DemineurObservateur() {

}

void DemineurObservateur::rafraichir(SujetDObservation * sdo) {

}

et le .H

Code:

/*
 * DemineurObservateur.h
 *
 *  Created on: 8 avr. 2010
 *      Author: apo
 */

#ifndef DEMINEUROBSERVATEUR_H_
#define DEMINEUROBSERVATEUR_H_

#include "O_SDO/observateur.h"
#include "O_SDO/sujetDObservation.h"
#include "Header/demineur.h"
#include "DemineurSDO.h"
#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QHBoxLayout>
#include <QVBoxLayout>

using namespace std;

class DemineurObservateur : public Observateur,public QWidget{

   DemineurSDO *monDemineur;
   QLabel *mine,*temps;



public:
   DemineurObservateur(DemineurSDO*);
   ~DemineurObservateur();
   void rafraichir(SujetDObservation* sdo);

};

#endif /* DEMINEUROBSERVATEUR_H_ */
Nicki
Nicki

Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Nicki Dim 18 Avr - 16:02

jme suis log sur msn si tu veux
Nicki
Nicki

Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Sardine Dim 18 Avr - 16:13

Déjà, faut que tu hérites de QWidget en premier, pour je ne sais plus quelle raison (voir dans l'énoncé du pendu Razz), et aussi, que tu rajoutes la macro Q_OBJECT dans la définition de ta classe (je dis pas que ça va résoudre le problème, mais bon).

Et vois en rajoutant ça avant le setLayout:
Code:
mine = new QLabel(QString("huhu"));
vLayout->addWidget(mine);
(j'ai pas l'occasion de tester avec mon code..)
Sardine
Sardine

Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Nicki Dim 18 Avr - 16:16

tu veux mon projet pour test?

ou alors la j abuse Very Happy
Nicki
Nicki

Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Sardine Dim 18 Avr - 16:28

Regarde plutôt avec le debugger (gdb) à quel moment ça plante exactement Very Happy
Sardine
Sardine

Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Nicki Dim 18 Avr - 17:20

Bon remodelage complet du code ,et ca va beaucoup mieux, j aurais du utiliser un gridlayout depuis le debut Very Happy
Nicki
Nicki

Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Joker Dim 18 Avr - 19:23

Very Happy
Joker
Joker

Nombre de messages : 5294
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 28/09/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Nicki Sam 24 Avr - 12:07

Qq1 sait il me dire pourquoi dans le code suivant, aucun bouton n'appel le slot jouer(), une fois qu il est clicker ?

Code:

tabButton = new QPushButton**[monDemineur->getLigne()];

   for (vector<vector<Parcelle> >::iterator it = terrain.begin(); it!= terrain.end(); ++it) {

      tabButton[ligne] = new QPushButton*[monDemineur->getColonne()];

      for (vector<Parcelle>::iterator it2 = it->begin(); it2 != it->end(); ++it2) {

         tabButton[ligne][col] = new QPushButton(this);

         gLayout->addWidget(tabButton[ligne][col], ligne, col);
      
         connect(tabButton[ligne][col], SIGNAL(clicked()), this,SLOT(jouer()));
      
         tabButton[ligne][col]->click();
         col++;
      }
      col = 0;
      ligne++;
   }
Nicki
Nicki

Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Nicki Sam 24 Avr - 12:51

.cpp

Code:
/*
 * DemineurObservateur.cpp
 *
 *  Created on: 8 avr. 2010
 *      Author: apo
 */

#include "DemineurObservateur.h"
#include "Header/parcelle.h"
#include <vector>
#include <iostream>

DemineurObservateur::DemineurObservateur(DemineurSDO* demineur) {
   monDemineur = demineur;

   //====================================
   affichage = new Affichage;
   affichage -> show();
   //====================================
   vector<vector<Parcelle> > terrain;
   terrain = monDemineur->getTerrain();
   signalMapper = new QSignalMapper(this);
   gLayout = new QGridLayout;

   ligne = 0;
   col = 0;
   int id = 0;
   tabButton = new QPushButton**[monDemineur->getLigne()];

   for (vector<vector<Parcelle> >::iterator it = terrain.begin(); it
         != terrain.end(); ++it) {
      tabButton[ligne] = new QPushButton*[monDemineur->getColonne()];
      for (vector<Parcelle>::iterator it2 = it->begin(); it2 != it->end(); ++it2) {

         tabButton[ligne][col] = new QPushButton(this);

         gLayout->addWidget(tabButton[ligne][col], ligne, col);

         connect(tabButton[ligne][col], SIGNAL(clicked()), this,   SLOT(jouer()));
         //connect(tabButton[ligne][col], SIGNAL(clicked()), signalMapper,   SLOT(map()));
         //signalMapper->setMapping(tabButton[ligne][col], id);
         col++;
      }
      col = 0;
      ligne++;
   }
   ligne = 0;
   col = 0;
   //connect(signalMapper, SIGNAL(mapped(id)), this, SLOT(jouer(id)));

   this->setLayout(gLayout);
   this->show();
}

DemineurObservateur::~DemineurObservateur() {

}

void DemineurObservateur::rafraichir(SujetDObservation * sdo) {
   vector<vector<Parcelle> > terrain;
   terrain = monDemineur->getTerrain();

   for (vector<vector<Parcelle> >::iterator it = terrain.begin(); it
         != terrain.end(); ++it) {

      for (vector<Parcelle>::iterator it2 = it->begin(); it2 != it->end(); ++it2) {
         QString texte;
         switch (it2->getEtat()) {
         case 0:
         case 1:
            texte = "";
            break;
         case 2:
            int nbr;
            nbr = it2->getVoisin();
            texte.setNum(nbr);
            break;
         case 3:
            texte = "$";
            break;
         case 4:
            texte = "*";
            break;

         }
         tabButton[ligne][col]->setText(texte);
      }
   }
}

void DemineurObservateur::jouer() {
   int val = 10;


   affichage->ui.labelAffichage->setNum(val);

   /*for (int i = 0; i < monDemineur->getLigne(); i++) {
      for (int j = 0; j < monDemineur->getColonne(); j++) {
         if (val == id) {
            monDemineur->decouvrirParcelleSDO(i, j);
            break;
         }
         val++;
      }
   }*/
   /*QPushButton * butt;
   butt=signalMapper->mapping(id);

    */
}



.h


Code:

/*
 * DemineurObservateur.h
 *
 *  Created on: 8 avr. 2010
 *      Author: apo
 */

#ifndef DEMINEUROBSERVATEUR_H_
#define DEMINEUROBSERVATEUR_H_

#include <QtGui/QDialog>
#include "O_SDO/observateur.h"
#include "O_SDO/sujetDObservation.h"
#include "Header/demineur.h"
#include "DemineurSDO.h"
#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QGridLayout>
#include <QSignalMapper>
#include "Affichage.h"

using namespace std;

class DemineurObservateur : public QWidget,public Observateur{

   DemineurSDO *monDemineur;
   QGridLayout *gLayout;
   int ligne,col;
   QPushButton*** tabButton;
   QSignalMapper* signalMapper;
   Affichage* affichage;



public:
   DemineurObservateur(DemineurSDO*);
   ~DemineurObservateur();
   void rafraichir(SujetDObservation* sdo);

private slots:
   void jouer();

};

#endif /* DEMINEUROBSERVATEUR_H_ */
Nicki
Nicki

Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Joker Sam 24 Avr - 12:58

ta connection m'a l'air bien faite ^^
Neanmoins je vois pas trop c'est quoi ce ->click() :s mais bon

Ton label ne se met pas à 10 ?

--> as tu essayer avec un seul bouton (donc pas de parcours de vecteur ?)
Voir si c'est ta mise en place de la creation et connection du bouton ou plutot le slot jouer()
Joker
Joker

Nombre de messages : 5294
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 28/09/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Nicki Sam 24 Avr - 13:25

oaui le click c etait juste un test au cas ou la conenction est detruite a la fin de la boucle for... ( on sait jamais)
Nicki
Nicki

Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Nicki Sam 24 Avr - 13:32

j viens dimplementer avec un seul bouton , toujours rien
Nicki
Nicki

Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Sardine Sam 24 Avr - 13:38

Et en remplaçant "clicked()" par "clicked(bool)" ?
Sardine
Sardine

Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Nicki Sam 24 Avr - 13:51

non
Nicki
Nicki

Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Joker Sam 24 Avr - 13:53

clicked a pas d'argument je crois :s

Tu es sur qu'il rentre dans la boucle ?(jai pas implementé avec un vector donc :s)
Tes bouton s'ajoutent je suppose ? C'est ton label qui ne se modifie pas ?
(Rajoute p-e la macro Q_OBJECT) même si je doute que ce soit ca :s
dans ton demineurObservateur.h
Joker
Joker

Nombre de messages : 5294
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 28/09/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Nicki Sam 24 Avr - 14:02

oui il rentre dans la boucle et creer les boutons sans probleme.

Le label affichage est la juste pour le test du slot, rien ne se passe. a la base j voulais verifier les parametre en argument mais voila j me rend conte que quand j click le slot est pas appelé...j comprend pas
Nicki
Nicki

Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Joker Sam 24 Avr - 14:07

ta mis la macro Q_OBject ?? dans ton demineurObservateur.h ?
Jme souveins que pour definir des slots doit yavoir ca avec ;s
Joker
Joker

Nombre de messages : 5294
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 28/09/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Nicki Sam 24 Avr - 14:15

j pensais jamais dire ca mais... merci joky...
Nicki
Nicki

Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008

Revenir en haut Aller en bas

CPP - Démineur - Page 2 Empty Re: CPP - Démineur

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 2 Précédent  1, 2

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum