CPP - Démineur

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

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: CPP - Démineur

Message par Sardine le Dim 18 Avr - 15:51

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

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Nicki le 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_ */
avatar
Nicki

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Nicki le Dim 18 Avr - 16:02

jme suis log sur msn si tu veux
avatar
Nicki

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Sardine le 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..)
avatar
Sardine

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Nicki le Dim 18 Avr - 16:16

tu veux mon projet pour test?

ou alors la j abuse Very Happy
avatar
Nicki

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Sardine le Dim 18 Avr - 16:28

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

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Nicki le 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
avatar
Nicki

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Joker le Dim 18 Avr - 19:23

Very Happy
avatar
Joker

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Nicki le 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++;
   }
avatar
Nicki

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Nicki le 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_ */
avatar
Nicki

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Joker le 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()
avatar
Joker

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Nicki le 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)
avatar
Nicki

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Nicki le Sam 24 Avr - 13:32

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

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Sardine le Sam 24 Avr - 13:38

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

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Nicki le Sam 24 Avr - 13:51

non
avatar
Nicki

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Joker le 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
avatar
Joker

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Nicki le 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
avatar
Nicki

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Joker le 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
avatar
Joker

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: CPP - Démineur

Message par Nicki le Sam 24 Avr - 14:15

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

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

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

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

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

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