[ALG3ir CPP]QpushButton et Vecteur.

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

[ALG3ir CPP]QpushButton et Vecteur.

Message  Gold le Dim 04 Oct 2009, 17:35

Bonjour,

Donc voilà, je ne suis pas tout à fait l'aise avec les vecteurs, même si je comprend leur fonctionnement(enfin je pense).
J'ai crée une Classe Case héritant publiquement de "QPushButton". Mon observateur a un attribut privé std::vector< std::vector < Case > > plateau;.

Lorsque dans le constructeur de l'observateur j'essaye d'appliquer la méthode resize(). le compilateur refuse en me disant que le constructeur par défaut et le constructeur par recopie est privé:

Code:

[...]

c:/Qt/4.5.3/include/QtGui/../../src/gui/widgets/qpushbutton.h:113: error: `QPushButton::QPushButton(const QPushButton&)' is private

C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_construct.h:81: error: within this context
[...]


c:/Qt/4.5.3/include/QtGui/../../src/gui/widgets/qpushbutton.h:113: error: `QPushButton& QPushButton::operator=(const QPushButton&)' is private
C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_algobase.h:247: error: within this context
[...]

Le problème viendrait il de la classe Qt QPushButton ?

Si quelqu'un a deja essayé , pourrait il m'aider
Merci d'avance

Gold

Nombre de messages : 163
Prénom : Alain
Statut : Etudiant
Date d'inscription : 29/12/2006

Revenir en haut Aller en bas

Re: [ALG3ir CPP]QpushButton et Vecteur.

Message  nvs le Dim 04 Oct 2009, 17:51

comme la mémoire est gérée automatiquement pour ce qui concerne les composants de qt à condition qu'ils soient gérés dynamiquement et qu'ils aient un parent, les gars de chez nokia poussent à utiliser des pointeurs (d'où le constructeur de recopie privé)... tu es donc bon pour remplacer tes Case par des Case * Laughing








_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [ALG3ir CPP]QpushButton et Vecteur.

Message  Gold le Dim 04 Oct 2009, 17:56

Ha d'accord il me semblait bien que ça venait d'eux, je vais essayer ça, merci d'avance pour cette réponse rapide Smile . J'ai voulu augmenter la réputation mais je pense qu'elle est au max là Laughing

Gold

Nombre de messages : 163
Prénom : Alain
Statut : Etudiant
Date d'inscription : 29/12/2006

Revenir en haut Aller en bas

Re: [ALG3ir CPP]QpushButton et Vecteur.

Message  nvs le Dim 04 Oct 2009, 18:00

Gold a écrit:Ha d'accord il me semblait bien que ça venait d'eux,...
oui. mais ce n'est pas un problème. c'est une obligation de bonnes pratiques, chose qui est plus habituelle aux langages de gamins comme java qu'au c++ Wink

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [ALG3ir CPP]QpushButton et Vecteur.

Message  mvh le Dim 04 Oct 2009, 19:09

nvs a écrit:
Gold a écrit:Ha d'accord il me semblait bien que ça venait d'eux,...
oui. mais ce n'est pas un problème. c'est une obligation de bonnes pratiques, chose qui est plus habituelle aux langages de gamins comme java qu'au c++

_________________

La fête c'est nul sans Kidibul !
... (vieux proverbe local)



mvh

Nombre de messages : 5973
Age : 104
Prénom : Marcel VANHAELEN
Statut : (fin de bail)
Win 3.1 à reprendre
Localisation : Koekeliek de Baselberg
Date d'inscription : 06/12/2006

Revenir en haut Aller en bas

Re: [ALG3ir CPP]QpushButton et Vecteur.

Message  Trusty le Dim 04 Oct 2009, 22:48

Gold a écrit:Bonjour,

Donc voilà, je ne suis pas tout à fait l'aise avec les vecteurs, même si je comprend leur fonctionnement(enfin je pense).
J'ai crée une Classe Case héritant publiquement de "QPushButton". Mon observateur a un attribut privé std::vector< std::vector < Case > > plateau;.

....

pourquoi ne pas hériter de QLabel...

tu sais faire
Code:
setPixmap()
pour leur rajouter tes images et tu leur rajoutes un signal avec la position...

Code:

signals:

   void donnePos(int,int);

tu réécris la méthode
Code:
void mousePressEvent(QMouseEvent *);

comme ça
Code:
void GUI_Case::mousePressEvent(QMouseEvent *e){

   emit donnePos(ligne,col);

}

et tu capte en connectant

Code:
connect(taGUICase,SIGNAL(donnePos(int,int)),gui,SLOT(jouer(int,int)));
si tu fais ton observateur dans une nouvelle fenêtre c'est pas gui mais ta fenêtre créée qui doit capter

Trusty

Nombre de messages : 866
Age : 29
Prénom : Bastien
Statut : old 2010
Localisation : Ath
Date d'inscription : 30/10/2006

Revenir en haut Aller en bas

Re: [ALG3ir CPP]QpushButton et Vecteur.

Message  Wark le Dim 04 Oct 2009, 23:07

Ou bien ne pas s'embêter avec des images et créer un dé de toute pièce qui hérite de QWidget. Rolling Eyes

Enfin, ça c'est ma solution, certains vont trouver que redéfinir une méthode type paintEvent est compliqué. Wink

Wark

Nombre de messages : 682
Age : 29
Prénom : Cédric
Statut : Diplômé 2010
Localisation : Braine l'alleud
Date d'inscription : 04/02/2008

Revenir en haut Aller en bas

Re: [ALG3ir CPP]QpushButton et Vecteur.

Message  nvs le Dim 04 Oct 2009, 23:23

c'est ça qui est bien : il y en a pour tous les goûts... mais tu dois dans tous les cas te farcir un conteneur de pointeurs, Gold Twisted Evil








_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [ALG3ir CPP]QpushButton et Vecteur.

Message  Wark le Dim 04 Oct 2009, 23:27

C'est tout aussi amusant à gérer, non ? Rolling Eyes

Dans mon cas, à part le Layout, j'ai pas de vecteur bizarroïdes qui contiennent des labels.. mais soit, je programme peut-être comme un pied !

Wark

Nombre de messages : 682
Age : 29
Prénom : Cédric
Statut : Diplômé 2010
Localisation : Braine l'alleud
Date d'inscription : 04/02/2008

Revenir en haut Aller en bas

Re: [ALG3ir CPP]QpushButton et Vecteur.

Message  Gold le Mar 06 Oct 2009, 21:59

Trusty a écrit:
Gold a écrit:Bonjour,

Donc voilà, je ne suis pas tout à fait l'aise avec les vecteurs, même si je comprend leur fonctionnement(enfin je pense).
J'ai crée une Classe Case héritant publiquement de "QPushButton". Mon observateur a un attribut privé std::vector< std::vector < Case > > plateau;.

....

pourquoi ne pas hériter de QLabel...

tu sais faire
Code:
setPixmap()
pour leur rajouter tes images et tu leur rajoutes un signal avec la position...

Code:

signals:

   void donnePos(int,int);

tu réécris la méthode
Code:
void mousePressEvent(QMouseEvent *);

comme ça
Code:
void GUI_Case::mousePressEvent(QMouseEvent *e){

   emit donnePos(ligne,col);

}

et tu capte en connectant

Code:
connect(taGUICase,SIGNAL(donnePos(int,int)),gui,SLOT(jouer(int,int)));
si tu fais ton observateur dans une nouvelle fenêtre c'est pas gui mais ta fenêtre créée qui doit capter

Parce que un bouton c'est plus joli , c'est facilement désactivable, il y a moins de méthode à redéfinir car c'est concu pour être cliqué.

nvs a écrit:c'est ça qui est bien : il y en a pour tous les goûts... mais tu dois dans tous les cas te farcir un conteneur de pointeurs, Gold Twisted Evil








Ca me va j'ai l'habitude maintenant.. Ce qui me pose un problème d'adaptation quand je programme en Java Razz

Gold

Nombre de messages : 163
Prénom : Alain
Statut : Etudiant
Date d'inscription : 29/12/2006

Revenir en haut Aller en bas

Re: [ALG3ir CPP]QpushButton et Vecteur.

Message  Wark le Mar 06 Oct 2009, 22:55

Je te rassure, tous les composants Qt sont faits pour être cliqués. Very Happy

Wark

Nombre de messages : 682
Age : 29
Prénom : Cédric
Statut : Diplômé 2010
Localisation : Braine l'alleud
Date d'inscription : 04/02/2008

Revenir en haut Aller en bas

Re: [ALG3ir CPP]QpushButton et Vecteur.

Message  nvs le Mar 06 Oct 2009, 23:22

disons plutôt qu'on peut cliquer sur tous les composants graphiques de qt et qu'un gestionnaire des événements de la souris leur est associé. mais je comprends qu'on favorise l'utilisation d'un bouton quand il s'agit de cliquer Smile








_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [ALG3ir CPP]QpushButton et Vecteur.

Message  Contenu sponsorisé Aujourd'hui à 10:52


Contenu sponsorisé


Revenir en haut Aller en bas

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


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