CPP - Démineur
5 participants
Ceibxl :: Discussion :: Cours
Page 2 sur 2
Page 2 sur 2 • 1, 2
Re: CPP - Démineur
File toute ta classe, là où t'en es arrivé
Sardine- Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008
Re: CPP - Démineur
bah en faite tu as deja presque tout
et le .H
- 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- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
jme suis log sur msn si tu veux
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
Déjà, faut que tu hérites de QWidget en premier, pour je ne sais plus quelle raison (voir dans l'énoncé du pendu ), 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:
Et vois en rajoutant ça avant le setLayout:
- Code:
mine = new QLabel(QString("huhu"));
vLayout->addWidget(mine);
Sardine- Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008
Re: CPP - Démineur
tu veux mon projet pour test?
ou alors la j abuse
ou alors la j abuse
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
Regarde plutôt avec le debugger (gdb) à quel moment ça plante exactement
Sardine- Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008
Re: CPP - Démineur
Bon remodelage complet du code ,et ca va beaucoup mieux, j aurais du utiliser un gridlayout depuis le debut
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Joker- Nombre de messages : 5294
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 28/09/2008
Re: CPP - Démineur
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- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
.cpp
.h
- 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- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
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()
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- Nombre de messages : 5294
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 28/09/2008
Re: CPP - Démineur
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- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
j viens dimplementer avec un seul bouton , toujours rien
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
Et en remplaçant "clicked()" par "clicked(bool)" ?
Sardine- Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
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
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- Nombre de messages : 5294
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 28/09/2008
Re: CPP - Démineur
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
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- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
ta mis la macro Q_OBject ?? dans ton demineurObservateur.h ?
Jme souveins que pour definir des slots doit yavoir ca avec ;s
Jme souveins que pour definir des slots doit yavoir ca avec ;s
Joker- Nombre de messages : 5294
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 28/09/2008
Re: CPP - Démineur
j pensais jamais dire ca mais... merci joky...
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Page 2 sur 2 • 1, 2
Ceibxl :: Discussion :: Cours
Page 2 sur 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|