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 18/04/10, 03:51 pm

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

Nombre de messages : 3703
Age : 26
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 18/04/10, 03:58 pm

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 : 29
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 18/04/10, 04:02 pm

jme suis log sur msn si tu veux
avatar
Nicki

Nombre de messages : 3696
Age : 29
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 18/04/10, 04:13 pm

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 : 26
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 18/04/10, 04:16 pm

tu veux mon projet pour test?

ou alors la j abuse Very Happy
avatar
Nicki

Nombre de messages : 3696
Age : 29
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 18/04/10, 04:28 pm

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

Nombre de messages : 3703
Age : 26
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 18/04/10, 05:20 pm

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 : 29
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 18/04/10, 07:23 pm

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 24/04/10, 12:07 pm

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 : 29
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 24/04/10, 12:51 pm

.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 : 29
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 24/04/10, 12:58 pm

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 24/04/10, 01:25 pm

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 : 29
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 24/04/10, 01:32 pm

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

Nombre de messages : 3696
Age : 29
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 24/04/10, 01:38 pm

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

Nombre de messages : 3703
Age : 26
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 24/04/10, 01:51 pm

non
avatar
Nicki

Nombre de messages : 3696
Age : 29
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 24/04/10, 01:53 pm

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 24/04/10, 02:02 pm

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 : 29
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 24/04/10, 02:07 pm

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 24/04/10, 02:15 pm

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

Nombre de messages : 3696
Age : 29
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