LCP jeu du pendu slot naviguer()

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

LCP jeu du pendu slot naviguer()

Message  karemkadidola le Mer 22 Fév 2012, 21:09

voilà j'ai un souci avec le slot naviguer() lorsque je clique dessus j'ai bel et bien la fenêtre avec l'arborescence des dossiers mais le problème est que après avoir sélectionne un fichier et cliqué sur ouvrir (ou sur annuler d'ailleurs) , j'ai un pop up de la même fenêtre ce n'est qu’après avoir choisi ou annulé pour la second fois que la fenêtre disparait...quelqu'un sait comment faire pour avoir un comportement normal...(pas de double ouverture..) merci d'avance


Dernière édition par karemkadidola le Sam 25 Fév 2012, 22:13, édité 4 fois

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  Nicky le Mer 22 Fév 2012, 21:57

karemkadidola a écrit:voilà j'ai un souci avec le slot naviguer() lorsque je clique dessus j'ai bel et bien la fenêtre avec l'arborescence des dossiers mais le problème est que après avoir sélectionne un fichier et cliqué sur ouvrir (ou sur annuler d'ailleurs) , j'ai un pop up de la même fenêtre ce n'est qu’après avoir choisi ou annulé pour la second fois que la fenêtre disparait...quelqu'un sait comment faire pour avoir un comportement normal...(pas de double ouverture..) merci d'avance

avec la code, peu etre Smile

Nicky

Nombre de messages : 300
Age : 29
Prénom : Pierre
Statut : Tout fini ! 2012
Localisation : Bruxelles / Chimay
Date d'inscription : 18/03/2008

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  karemkadidola le Mer 22 Fév 2012, 22:04

ok
connection:

Code:
connect(ui.naviguer,SIGNAL(clicked()),this,SLOT(naviguer()));

slot:
Code:
void DialogueConfiguration::naviguer(){
   nomFichier = QFileDialog::getOpenFileName (this,tr("Choisir un fichier de mots"),QDir::currentPath());
   QFileInfo fichier (nomFichier);
   QString name = fichier.fileName();
   if (getNomFichier()!=QString::null){
      ui.nomfichier->setText(name);
   }
}
voilà...

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  smb le Mer 22 Fév 2012, 23:09

karemkadidola a écrit:voilà j'ai un souci avec le slot naviguer() lorsque je clique dessus j'ai bel et bien la fenêtre avec l'arborescence des dossiers mais le problème est que après avoir sélectionne un fichier et cliqué sur ouvrir (ou sur annuler d'ailleurs) , j'ai un pop up de la même fenêtre ce n'est qu’après avoir choisi ou annulé pour la second fois que la fenêtre disparait...quelqu'un sait comment faire pour avoir un comportement normal...(pas de double ouverture..) merci d'avance

Le problème ne viendrait-il pas du code de JeuDuPendu::nouvellePartie() ?

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  karemkadidola le Mer 22 Fév 2012, 23:40

Code:
void JeuDuPendu::nouvellePartie(){
   DialogueConfiguration dialogueConfiguration(this);
   int retour = dialogueConfiguration.exec();
   ui.menu_Observateur->setEnabled(true);
   ui.centralwidget->setVisible(true);
   ui.action_Nouveau->setEnabled(false);
   ui.action_Fermer->setEnabled(true);

}
lorsque je sélectionne un fichier dans la première fenêtre de l'explorateur des dossiers
et que je déplace cette fenêtre je vois quand même que le "nom" du fichier change de (rien) à "nom du fichier" ..donc le signal/slot fonctionne bien dès le premier click mais seulement il s’exécute deux fois....bizarre bizarre..

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  smb le Jeu 23 Fév 2012, 06:34

karemkadidola a écrit:
Code:
void JeuDuPendu::nouvellePartie(){
   DialogueConfiguration dialogueConfiguration(this);
   int retour = dialogueConfiguration.exec();
   ui.menu_Observateur->setEnabled(true);
   ui.centralwidget->setVisible(true);
   ui.action_Nouveau->setEnabled(false);
   ui.action_Fermer->setEnabled(true);

}
lorsque je sélectionne un fichier dans la première fenêtre de l'explorateur des dossiers
et que je déplace cette fenêtre je vois quand même que le "nom" du fichier change de (rien) à "nom du fichier" ..donc le signal/slot fonctionne bien dès le premier click mais seulement il s’exécute deux fois....bizarre bizarre..

L'erreur doit venir d'ailleurs.
Je trouverais peut-être avec ton projet complet.

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  karemkadidola le Jeu 23 Fév 2012, 06:37

je vous envoie ça en privé via mail heb.be en .zip autrement ça sera trop long ici...merci beaucoup pour votre temps

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  smb le Jeu 23 Fév 2012, 07:51

En fait, tu avais déjà fait la connexion avec le Qt designer en mode Edit Signals/Slots, il ne faut donc pas la mettre en plus dans ton code !

Pour l'aide, chez moi ça s'affiche parfaitement !

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  karemkadidola le Jeu 23 Fév 2012, 08:41

Ahhhh!!!! ça fallait trouver bon on ne s'appelle pas Mr SMB pour rien...merci beaucoup monsieur ça marche d'enfer....bon faut encore que je finisse le TD (passer d'un QString à un char * pour instancier un pendu reste encore un mystère) mais bon je continue de chercher c'est un peu le but du td "chercher chercher chercher pendant longtemps et quand vous ne trouvez vraiment pas venez sur fora....dans deux heures je reviens si pas trouver...
pour l'aide je crois que c'est l'affichage sur mon portable qui "deconne"

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  iCart le Jeu 23 Fév 2012, 16:55

karemkadidola a écrit: (passer d'un QString à un char * pour instancier un pendu reste encore un mystère) mais bon je continue de chercher c'est un peu le but du td "chercher chercher chercher pendant longtemps et quand vous ne trouvez vraiment pas venez sur fora....dans deux heures je reviens si pas trouver...

Pour les problèmes de conversion d'un type x vers un type y, chercher "x to y" sur google donne des résultats assez probants, en général...
Ceci dit, c'est toujours moins classe/propre que de consulter la documentation Wink

iCart

Nombre de messages : 58
Age : 27
Prénom : Sylvain
Statut : Echappé 2013
Date d'inscription : 09/12/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  karemkadidola le Jeu 23 Fév 2012, 21:46

j'ai finalement trouvé merci !!! et ça donne ceci à peu près
Code:
lenomdufichier[i]=nomfichier.data()[i].toAscii();
dans un for bien entendu...

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  smb le Jeu 23 Fév 2012, 23:24

karemkadidola a écrit:j'ai finalement trouvé merci !!! et ça donne ceci à peu près
Code:
lenomdufichier[i]=nomfichier.data()[i].toAscii();
dans un for bien entendu...

C'est ce qui s'appelle "faire compliqué alors qu'une solution simple existe"...

... mais c'est vrai qu'il faut chercher un peu ... un petit peu...

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  karemkadidola le Ven 24 Fév 2012, 08:32

petit coup de pouce demandé pour avancer...
dans la méthode virtuelle pure "rafraichir()" dans mon QString je veux afficher la deuxième ligne comme dans le screenshot Figure 5 (guide du td) je sais qu'il faut appeler à la méthode motEnCours() du pendu. Question comment accéder à cette méthode à partir du (SujetDObservation * sdo) qui nous est fourni en paramètre? Merci d'avance
P.S pendu est lui même sensé être un sujet d'observation par héritage mais quand j'utilise l'opérateur -> je n'ai pas cette méthode qui s'autocomplète

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  smb le Ven 24 Fév 2012, 09:47

karemkadidola a écrit:petit coup de pouce demandé pour avancer...
dans la méthode virtuelle pure "rafraichir()" dans mon QString je veux afficher la deuxième ligne comme dans le screenshot Figure 5 (guide du td) je sais qu'il faut appeler à la méthode motEnCours() du pendu. Question comment accéder à cette méthode à partir du (SujetDObservation * sdo) qui nous est fourni en paramètre? Merci d'avance
P.S pendu est lui même sensé être un sujet d'observation par héritage mais quand j'utilise l'opérateur -> je n'ai pas cette méthode qui s'autocomplète

Un des arguments du constructeur ObservateurProposition doit être un Pendu * que tu dois mettre dans un attribut de cette classe, attribut défini comme Pendu *, qu'on peut par exemple appelé "sujetPendu". Tu dois également dans ce constructeur faire sujetPendu->attacher(this) pour que l'observateur soit averti des changements du sujet.

La méthode void rafraichir(SujetDObservation *s) est polymorphe.
Au début de cette méthode, généralement, on vérifie si l'argument reçu correspond bien à l'attribut "sujetPendu" de la classe (qui est un Pendu *).
Code:
if ( s != sujetPendu)
return;
Donc, bien évidemment, dans cette méthode rafraichir, c'est l'attribut "sujetPendu" de ta classe (qui est un Pendu *) que tu dois utiliser. Et tu verras que l'autocomplete fonctionnera bien.



smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  karemkadidola le Ven 24 Fév 2012, 10:06

I really appreciate car je crois j'allais encore chercher pendant assez longtemps ....
P.S Après ça on comprends mieux le sens de ceci...
Garnissez cette classe comme il le faut
pour un observateur digne de ce nom.

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  karemkadidola le Sam 25 Fév 2012, 11:24

j'ai essayé ceci pour afficher les lettres déjà proposées mais ça marche pas...je demande après avoir longtemps chercher... merci d'avance
Code:

QString chaine;
chaine = "<p><b>Proposition en cours : <b></p>";
chaine += ........:
chaine +=.........;
// le vrai problème commence ici
std::set<char>::iterator it;
for ( it=sujetPendu->lettreProposee().begin() ; it != sujetPendu->lettreProposee().end(); it++ ){
  QChar ch (*it);
  QString st (ch);
  chaine += st ;
  chaine += " ";
}
..............;
 

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  smb le Sam 25 Fév 2012, 13:39

karemkadidola a écrit:j'ai essayé ceci pour afficher les lettres déjà proposées mais ça marche pas...je demande après avoir longtemps chercher... merci d'avance
Code:

QString chaine;
chaine = "<p><b>Proposition en cours : <b></p>";
chaine += ........:
chaine +=.........;
// le vrai problème commence ici
std::set<char>::iterator it;
for ( it=sujetPendu->lettreProposee().begin() ; it != sujetPendu->lettreProposee().end(); it++ ){
  QChar ch (*it);
  QString st (ch);
  chaine += st ;
  chaine += " ";
}
..............;
 

Voilà bien une erreur classique à mettre dans le bêtisier de l'ESI Wink

it est initialisé au début d'un set de char retourné lors du premier appel à lettreProposee() et est ensuite testé avec la fin d'un autre set de char retourné lors du deuxième appel à lettreProposee() !
Et donc boucle infinie.

Je suppose que sachant cela, tu verras facilement comment corriger.

smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  karemkadidola le Sam 25 Fév 2012, 15:38

Correction après tuyau if this can help

Code:

std::set<char>::iterator it;
std::set<char> theSetThatGaveMeAHeadache;
theSetThatGaveMeAHeadache= sujetPendu->lettreProposee();
for ( it=theSetThatGaveMeAHeadache.begin() ; it != theSetThatGaveMeAHeadache.end(); it++ ){
  QChar ch (*it);
  QString st (ch);
  chaine += st ;
  chaine += " ";
}


encore une fois Merci...

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  nvs le Sam 25 Fév 2012, 16:54

ce problème ne devrait plus se poser en c++11 (enfin faudrait quand même tester) grâce à la boucle for étendue à une gamme de valeurs Smile





Neutral

_________________

nvs

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

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  nvs le Sam 25 Fév 2012, 22:28

selon cette page, le range-based for est supporté par gcc depuis sa version 4.6. sur cette même page, on peut lire :
http://gcc.gnu.org/projects/cxx0x.html a écrit:To enable C++0x support, add the command-line parameter -std=c++0x to your g++ command line.








What a Face

_________________

nvs

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

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  karemkadidola le Sam 25 Fév 2012, 22:32

Je vais tester ça pour voir..

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  nvs le Sam 25 Fév 2012, 22:38

note qu'à l'école on utilise la version 4.5.2 de gcc. si tu upgrades à la 4.6, tu devras peut-être ensuite downgrader à la 4.5.2 pour pouvoir utiliser les bibliothèques de tes profs -- mais peut-être pas... à voir Wink









Exclamation

_________________

nvs

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

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  karemkadidola le Sam 25 Fév 2012, 23:14

merci pour l'info j'étais justement occupé à vérifier dans un premier temps la version du compilateur gcc intégré dans mon eclipse ...je ne ne trouve toujours pas partout où il parle de gcc (dans l'aide d'eclipse on ne mentionne pas la version on parle surtout de la version 4.0.0 mais je suppose que j'ai une version plus recente que ça).. je suppose qu'en mettant à jour eclipse et Qt j'aurais forcement la dernière version du compilateur après faudra trouver le moyen pour aller modifier dans le bon fichier la ligne de commande en question...je ne manquerai pas de poster le résultat si j'y arrive ou pas d'ailleurs..

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  nvs le Dim 26 Fév 2012, 00:20

attention : gcc, qt et eclipse sont 3 entités liées, mais différentes ! ici, il ne s'agit que de gcc, pas d'eclipse ni de qt.






bom

_________________

nvs

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

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  karemkadidola le Dim 26 Fév 2012, 02:53

c'est ce que j'ai fini par comprendre
finalement j'avais la version 4.5.0 n'étant pas sur du fichier où il fallait modifier la ligne de commande g++ j'ai opté pour une mise à jour du gcc (plutôt tout le package mingw) j'ai pu installer la version 4.6.2 et là j'ai retester l'itérateur de mon set<char> qui bouclait infiniment mais pas de changement...la boucle infinie persistait voilà...à moins qu'il faille rajouter -std=c++0x dans la commande g++ (p.s) même pour la 4.6.2 ent tout cas dans le makefile du projet il n'y a pas de (g++ -option -option -option....-....- .....) directement, je présume alors que c'est dans un autre fichier où il faut opérer la modification ....

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: LCP jeu du pendu slot naviguer()

Message  Contenu sponsorisé Aujourd'hui à 21:02


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