CPP - Démineur
5 participants
Ceibxl :: Discussion :: Cours
Page 1 sur 2
Page 1 sur 2 • 1, 2
CPP - Démineur
Après m'être cassé la tête maintes fois sur comment savoir quelle case/parcelle était cliquée afin de la découvrir/marquer, j'ai trouvé la solution et je vous en fait part
Au début je pensais dériver QPushButton (ou peu importe) et d'y ajouter la ligne et la colonne, mais, c'était lourd.
Il se trouve que Qt vient avec une solution built-in
Mais dans Qt il y a QSignalMapper, qui permet d'envoyer des informations supplémentaires.
Y a un petit exemple ici.
My 2 cents.
Au début je pensais dériver QPushButton (ou peu importe) et d'y ajouter la ligne et la colonne, mais, c'était lourd.
Il se trouve que Qt vient avec une solution built-in
Mais dans Qt il y a QSignalMapper, qui permet d'envoyer des informations supplémentaires.
Y a un petit exemple ici.
My 2 cents.
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 trouve vraiments ca lourd une classe qui derive de QPushButton ?
Sarko- Nombre de messages : 2134
Age : 36
Cercle : CEI tapette ²
Année Baptême : 2006
Date d'inscription : 10/07/2008
Re: CPP - Démineur
Ouais, car il faut redéfinir le constructeur de copie, l'assignation, et surement d'autres trucs
Du moins dans ce que j'avais fait j'étais obligé de le faire...
Du moins dans ce que j'avais fait j'étais obligé de le faire...
Sardine- Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008
Re: CPP - Démineur
ok vais regardé ton truc car j'ai des soucis avec ma classe qui dérive de QPushButton (Qd je fais un ->setIcon() de ma classe ça work pas, alors que quand je le fais sur un QPushButton normal ca work)
Et je met un lien en + qui est un peu plus claire que la doc pour faire ce qu'on doit faire
http://qt-quarterly.developpez.com/qq-10/signalmapper/
Et je met un lien en + qui est un peu plus claire que la doc pour faire ce qu'on doit faire
http://qt-quarterly.developpez.com/qq-10/signalmapper/
Sarko- Nombre de messages : 2134
Age : 36
Cercle : CEI tapette ²
Année Baptême : 2006
Date d'inscription : 10/07/2008
Re: CPP - Démineur
Pourquoi d'un besoin d'une constructeur par recopie ? oO
fin bon, moi j'ia fais comme t'a dit plus haut ca tourne deja bien donc je reste sur mon idéee ^^
j'utilise la méthode sender() même si c'est pas le plus optimale, c'est amplement suffisant pour la façon dont je l'implemente
fin bon, moi j'ia fais comme t'a dit plus haut ca tourne deja bien donc je reste sur mon idéee ^^
j'utilise la méthode sender() même si c'est pas le plus optimale, c'est amplement suffisant pour la façon dont je l'implemente
Joker- Nombre de messages : 5294
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 28/09/2008
Re: CPP - Démineur
Bon, mon mapper fonctionne ^^
J'utilise une liste de QPushButton *
Et quand je clique sur un bouton, ma methode clickedButton(int )
me renvoit bien sur quel pos il a cliqué ^^
Le truc c'est que je vais devoir changé ma list je pense en
list <QPushButton *, Parcelle>
Sinon ... bah je peu pas la remplir de Parcelle :P
J'utilise une liste de QPushButton *
Et quand je clique sur un bouton, ma methode clickedButton(int )
me renvoit bien sur quel pos il a cliqué ^^
Le truc c'est que je vais devoir changé ma list je pense en
list <QPushButton *, Parcelle>
Sinon ... bah je peu pas la remplir de Parcelle :P
Sarko- Nombre de messages : 2134
Age : 36
Cercle : CEI tapette ²
Année Baptême : 2006
Date d'inscription : 10/07/2008
Re: CPP - Démineur
Fiot ramene ton cul sur msn pour me dire comment ta reglé le truc que QT reconnait pas STL :P
Sarko- Nombre de messages : 2134
Age : 36
Cercle : CEI tapette ²
Année Baptême : 2006
Date d'inscription : 10/07/2008
Re: CPP - Démineur
C'est expliqué dans le td3.. Faut rajouter un répertoire dans les propriétés
Sardine- Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008
Re: CPP - Démineur
Ué je l'avais fait mais ca fonctionnais pas, mais la comme par magie apres avoir bouffé ca fonctionnais donc bon ...
Sarko- Nombre de messages : 2134
Age : 36
Cercle : CEI tapette ²
Année Baptême : 2006
Date d'inscription : 10/07/2008
Re: CPP - Démineur
Bon ben retour a zero ... eclipse c'est vraiment de la merde, il me reconnait plus mon vector
Sarko- Nombre de messages : 2134
Age : 36
Cercle : CEI tapette ²
Année Baptême : 2006
Date d'inscription : 10/07/2008
Re: CPP - Démineur
tite couille en mode graphique,
j arrive pas a include la lib demineur dans mon qt gui project :s
help
j arrive pas a include la lib demineur dans mon qt gui project :s
help
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
T'as bien rajouté une ligne LIBS += ... dans le .pro ? (c'est expliqué dans le pdf plus précisèment comment faire - voire aussi dans l'énoncé du pendu)
Sardine- Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008
Re: CPP - Démineur
ca doit etre ca
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
au pire tien la ligne a foutre inside ton pro
INCLUDEPATH += .
LIBS += ./lib/libdemineur_win32.a
(avec biensu un dossier qui s'apelle lib, dans laquelle tu met libDemineur ... )
INCLUDEPATH += .
LIBS += ./lib/libdemineur_win32.a
(avec biensu un dossier qui s'apelle lib, dans laquelle tu met libDemineur ... )
Sarko- Nombre de messages : 2134
Age : 36
Cercle : CEI tapette ²
Année Baptême : 2006
Date d'inscription : 10/07/2008
Re: CPP - Démineur
putin j suis une prout mais jvois pas hein ou jdois foutre cette merde :s j crois que j suis trop mort today :s
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
T'as un fichier qui s'appelle <ton projet>.pro, tu le fous dedans
Sardine- Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008
Re: CPP - Démineur
QString texte;
texte.setNum(monDemineur->getMine());
mine->setText(texte);
hLayout->addWidget(mine);
ca ca plante... pourquoi? j arrive pas a foutre me label bordel de merde
texte.setNum(monDemineur->getMine());
mine->setText(texte);
hLayout->addWidget(mine);
ca ca plante... pourquoi? j arrive pas a foutre me label bordel de merde
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
enfaite des que j ajoute a Qlabel a mon hLayout, que je met dans un vLayout , ca plante.
Hors je fais pareil avec des QPushButton ca marche
Hors je fais pareil avec des QPushButton ca marche
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
Tu sais filer un code d'exemple ?
Sardine- Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008
Re: CPP - Démineur
- Code:
monDemineur = demineur;
vector<vector<Parcelle> > terrain;
terrain=monDemineur->getTerrain();
int taille = monDemineur->getColonne() * monDemineur->getLigne();
QPushButton* tab[taille];
QVBoxLayout* vLayout= new QVBoxLayout;
QHBoxLayout* dLayout = new QHBoxLayout;
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);
}
QString texte;
//texte.setNum(monDemineur->getTempsEcoule());
//temps->setText(texte);
//hLayout->addWidget(temps);
/*texte.setNum(monDemineur->getMine());
mine->setText(texte);
hLayout->addWidget(mine);*/
this->setLayout(vLayout);
this->show();
dès que je decommente ca plante, jherite de QWidget
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
Ton hLayout est interne au for, ça serait pas ça ?
Et idéalement, tes layout tu devrais les mettre comme attribut de la classe, sinon ils seront détruits directement (je crois )
Et idéalement, tes layout tu devrais les mettre comme attribut de la classe, sinon ils seront détruits directement (je crois )
Sardine- Nombre de messages : 3703
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 04/10/2008
Re: CPP - Démineur
Ils ne sont detruit que lors du delete norm ce sont pas des objets automatiques mais restons prudent
^^ j'ai utilisé un gridLayout dans lequel j'ajoute un horizontal
pour les infos etc..
Declare un layout horizontal "infos" par Ex. vu que celui là tu es sur qu'il est tt seul
Une fois ajouter a ton Vertical layout, je pense qu'il se delete avec le vertical mais restons prudent
^^ j'ai utilisé un gridLayout dans lequel j'ajoute un horizontal
pour les infos etc..
Declare un layout horizontal "infos" par Ex. vu que celui là tu es sur qu'il est tt seul
Une fois ajouter a ton Vertical layout, je pense qu'il se delete avec le vertical mais restons prudent
Joker- Nombre de messages : 5294
Age : 33
Cercle : CEI
Année Baptême : 2008
Date d'inscription : 28/09/2008
Re: CPP - Démineur
quand tu fais new, c est supprimer lors d un delete et pas en sortie de boucle.
j'ai fais des testes ou je fou tout en commentaire et j met juste un label , ca plante. j cherche a raison psq j ai deja utiliser des labels ailleurs sans probleme.
j'ai fais des testes ou je fou tout en commentaire et j met juste un label , ca plante. j cherche a raison psq j ai deja utiliser des labels ailleurs sans probleme.
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Re: CPP - Démineur
Bon j calcine a mort !
Y a aps une bonne âme qui veut bien m filer le classe demineurOBS que j'avance plz. psq la elle m enerve j bloque depuis 2jours sur le meme truc.
J'arrive a avoir une fenetre pleine de bouton, crée dynamiquement en fonction de mon jeu demineur mais ca plante au label, j pige pas.
Ca me bloque pour le reste cette merde help
Y a aps une bonne âme qui veut bien m filer le classe demineurOBS que j'avance plz. psq la elle m enerve j bloque depuis 2jours sur le meme truc.
J'arrive a avoir une fenetre pleine de bouton, crée dynamiquement en fonction de mon jeu demineur mais ca plante au label, j pige pas.
Ca me bloque pour le reste cette merde help
Nicki- Nombre de messages : 3696
Age : 36
Cercle : CEI
Année Baptême : 2007
Date d'inscription : 14/07/2008
Page 1 sur 2 • 1, 2
Ceibxl :: Discussion :: Cours
Page 1 sur 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|