[QT] affichage de fenêtre et problème de classe

affichage de fenêtre et problème de classe [QT] - C++ - Programmation

Marsh Posté le 21-12-2004 à 12:15:23    

voilà j'ai un problème avec ma fonction ==  
voilà le code :
 
pour le hpp :

Code :
  1. bool COLONNE::operator ==(const &COLONNE, const &COLONNE);


 
pour le cpp :
 

Code :
  1. bool COLONNE::operator ==(const COLONNE & c1, const COLONNE & c2)
  2. {
  3.   return true; // c juste pour simplifier...
  4. }


 
le problème a la compilation il me sort :
 
erreur : "bool COLONNE::operator ==(const COLONNE & c1, const COLONNE & c2)" doit prendre exactement un paramètre
 
J'ai ce message d'erreur pour le hpp et le cpp.
or un opérateur de comparaison doit prendre au moins deux opérandes pour que ça marche non ?
 
 
Ensuite mon deuxième problème est relatif à la programmation QT
j'ai deux fenetres créés avec l'éditeur graphique
 
une principale qui s'appelle pConsole et l'autre qui s'appelle pNouvelleSimulation
Je voudrais qu'en cliquant sur un bouton de pConsole pNouvelleSimulation s'affiche.
j'ai donc essayé de faire comme en visual basic :
pNouvelleSimulation.show  (dans une procédure correspondant au clique sur le bouton devant afficher cette fenetre).
 
Or il me retourne un message d'erreur m'indiquant que je n'ai pas déclaré pNouvelleSimulation. En même temps je le comprends mais je ne sais pas comment faire tout ça.
Quelqu'un pourrait m'aider (en attendant que j'achète un livre sur QT) ???

Reply

Marsh Posté le 21-12-2004 à 12:15:23   

Reply

Marsh Posté le 21-12-2004 à 12:23:08    

Pour QT j'en sais rien, mais le message d'erreur de ton premier problème est clair, non? L'opérateur == ne prend qu'un paramètre...
 
[edit]
 
Après lecture de ton pb QT, si en fait je sais : là encore le message est clair => il ne sait pas afficher un objet qui n'existe pas encore...tu dois le créer.


Message édité par skeye le 21-12-2004 à 12:24:35

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 21-12-2004 à 12:54:11    

oui je me doute bien qu'il prend qu'un paramètre d'après le message d'erreur
mais quand on fait  
 
if (truc==bidule) then
blabla
end if
 
il faut bien passer deux paramètres ?

Reply

Marsh Posté le 21-12-2004 à 12:56:38    

lordankou a écrit :

oui je me doute bien qu'il prend qu'un paramètre d'après le message d'erreur
mais quand on fait  
 
if (truc==bidule) then
blabla
end if
 
il faut bien passer deux paramètres ?


Le deuxième est l'instance de la classe dont tu surcharges l'opérateur...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 21-12-2004 à 13:06:48    

j'avoue que je suis un peu perdu (ça fait un petit bout de temps qu'on programme pas en deug...)
prenoms l'exemple suivant :

Code :
  1. COLONNE UneColonne ;
  2. COLONNE UneColonne2 ;
  3. if (UneColonne == UneColonne2)
  4. {
  5. blabla
  6. }


 
dans ce cas si je surcharge mon opérateur == comme suit :
pour le cpp

Code :
  1. bool COLONNE::operator ==(const &COLONNE);


 
et pôur le hpp :
 

Code :
  1. bool COLONNE::operator ==(const &COLONNE C1)
  2. {
  3. return strcmp(C1.nom, this.nom);
  4. }


 
est ce que cela va marcher avec le code utilisé plus haut ?  

Reply

Marsh Posté le 21-12-2004 à 13:16:11    

lordankou a écrit :

oui je me doute bien qu'il prend qu'un paramètre d'après le message d'erreur
mais quand on fait  
 
if (truc==bidule) then
blabla
end if
 
il faut bien passer deux paramètres ?


 
Et après les gens se moquent du passage explicite de self en Python :D

Reply

Marsh Posté le 21-12-2004 à 20:52:45    

Pour afficher une Dialog à partir d'un clic de bouton sous QT :
Le signal clicked de ton bouton dans pConsole doit etre relie a un slot de pConsole.
Dans ce slot tu fait appel au constructeur de pNouvelleSimulation, puis tu fait un exec() sur pNouvelleSimulation par exemple.
 
Tu souhaites acheter un bouquin sur Qt pour commencer :  je te conseille vivement un bouquin en francais (le seul en francais d'ailleurs) que tu trouveras facilement grace a ton ami google.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed