IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Souci avec QMessageBox

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Façonnier
    Inscrit en
    Août 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Façonnier
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 31
    Par défaut Souci avec QMessageBox
    Bonjour à vous Ô grands maître garants de la connaissance et du savoir Qt

    Je vais me permettre d'abuser de votre attention, pour un souci dont il me semble, après moult et moult lectures, vaguement apercevoir une forme encore bien indistincte de la génération du problème suivant :

    Quand je lance ma fonction QMessageBox que voici exposée sous vos yeux que je pressens ébahis,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void FenetreFiche::fenetreMessageBox(QString lInformation)
    {
        QMessageBox msgBox;
        msgBox.setText(lInformation);
        msgBox.exec();
    }
    et bien voilà donc ce que cela m'affiche au lieu de ma belle petite fenêtre demandée.

    Citation de : Microsoft Visual C++ Runtime Libray

    This application has requested the Runtime to terminate it in an unusual way.
    Please contact the application's support team for more information.
    Suivi de très près par une fenêtre différente cette fois, de Qt je suppose ou de Windows puisque je suis sous cet OS, m'expliquant que le programme a cessé de fonctionner et qu'il faut le fermer.

    Bast ! Je suis dépassé certes, mais pas abattu ! Non je ne baisse point les bras.
    A l'instant je m'en vais retourner en tous sens, Faqs, forums et autres lieux dispensateurs de savoir Cplupluseurale-Qteurale. Peut-être y trouverais-je de quoi sustenter mon avidité naturelle à la connaissance parfaite de ce langage princier ...

    Merci pour votre aide généreuse...

  2. #2
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Par défaut
    Salut à toi, ô, apprenti,

    Tant de précipitation dans ton apprentissage est signe de mauvaise augure. Pour suivre la voie du sabre, il est nécessaire d'en apprendre la constitution afin de ne pas te retrouver manger par le grand Crocodile ou par le Mauvais Œil. C'est pour cela qu'il te faut comprendre la différence entre un pointeur et une variable pour parvenir à mettre à défaut tes ennemis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void FenetreFiche::fenetreMessageBox(QString lInformation)
    {
        QMessageBox msgBox; // La variable est créée...
        msgBox.setText(lInformation);
        msgBox.exec();
    } // Et se fait détruire ici, d'où le crash.
    La solution étant de te servir d'un sabre plus adapté à tes besoins, le sabre qui appartenait dans les temps anciens à Maître pointeur.

    Bon courage dans la voie du sabre !
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  3. #3
    Membre averti
    Homme Profil pro
    Façonnier
    Inscrit en
    Août 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Façonnier
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 31
    Par défaut
    Fichtre, fichtre ! Mais que bayez-vous donc là ?
    Mon Opinel ne convient donc point...
    Bigre, mazette et crottes de bique !... Voilà qu'il me faut changer d'arme alors que je me pensais muni, prémuni et protégé...
    Suis-je parti en chasse trop tôt ?
    Comment aurais-je méconnu ces pointeurs...
    Alors me voici parti en recherche de la connaissance que nous délivrent ces tutoriels, fruits de la réflexion et du travail de nos grands maîtres du Qt.

    Merci à toi maître Amnell pour cette correction fraternelle... Sois-en sûr avant un heure j'aurais tout compris de la première ligne que je trouverai qui parlera de ce "sabre" magique qu'est le pointeur... Je pense que demain avant la tombée de la nuit, j'aurais appréhendé la seconde ligne et de nouvelles forces me porteront vers les sommets encore inaccessibles au néophyte que je fus sans aucun doute et de façon patente.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    C'est ça les habitués du GN médiéval : de la maîtrise dans le verbe diantre !
    Eh oui les variables "locales" et "globale à la classe" (c'est comme ça que je les appelle... Mon vocabulaire est sûrement d'ailleurs très mauvais)
    La semaine prochaine ça sera en verlan...

    Voilà en tout cas une manière sympa de poser un problème.
    Merci pour ce petit instant détente.

    En espérant ne pas avoir dérangé, mon but n'était en aucun cas de provoquer ni de me moquer (promis).
    Merci et bonne soirée à vous.

    EDIT : et pour le problème : tu peux déplacer ta ligne A l'intérieur de la déclaration de ta classe FenetreFiche (j'ai failli lire "FenetreFichtre") en tant que variable privée (si toutefois tu veux qu'elle soit privée), classe qui se situe dans le fichier d'entête *.h (si toutefois tu as déclaré ta classe ici).
    Mais tu peux aussi faire avec la solution d'Amnell en utilisant des pointeurs c'est toi qui vois. Ma solution n'est pas forcément meilleure.
    Après tu fais comme tu le sens...
    Dernière modification par Invité ; 03/09/2011 à 03h15.

  5. #5
    Membre averti
    Homme Profil pro
    Façonnier
    Inscrit en
    Août 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Façonnier
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 31
    Par défaut
    Bonjour gardiens de la connaissance qui me manque tant...

    Je ne suis qu'un bien humble apprenti et comme tel, j'ai quelques difficultés avec maître pointeur... Dans toute sa sagesse inondante, Il me parle, je l'entends, mais étrangement je ne le comprends pas, d'où quelque incompréhension entre nous...

    Quelle est donc cette langue étrange qui ressemble à la mienne, dont je comprends tous les mots, mais dont je n’entends point le sens ?

    J'ai essayé d’abattre la difficulté en me servant de moult exemples découverts sur le chemin de la recherche, mais étrangement cela n’a servi de rien. Mon programme ne le pouvant supporter, meurt irrémédiablement, de même qu'immédiatement sur l'instant avec les mêmes effets que dans mon premier message.

    J'ai aussi essayé de tâter en vain la technique de frère gizmo27... Je ne l’en remercie pas moins de ses conseils avisés.

    Alors fort de ma volonté, que je meurs si je faiblis, j'ai fermé mon programme pour en créer avec ma souris magique, un autre qui ne serait que fenêtres de dialogues.

    La malédiction qui planait sur moi de son épaisse cape de nuit a enfin été levée, puisque, Ô merveille, la lumière d'un programme fonctionnel ensoleillait tout le vaste écran devant mes yeux ébaudis jusqu’à en effacer le jour m’entourant. J’avais enfin trouvé ma nouvelle arme. Que les dieux en soient remerciés.

    C’est alors que je retournai avec cette épée flamboyante sur le terrain de mon premier programme afin de jouter victorieusement l’ennemi tapi derrière quelque rocher invisible d’une commande ou d’une routine manquante.
    Mais le démon du malheur, se nourrissant de mon ignorance, a surgi avec une surprenante vivacité de quelque recoin secret de la fonction infectée par lui de mon programme originel. Il m’a encore désarmé, me laissant plus que jamais non pas faible, mais incompétent face à lui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    //Traite le tableau
        for (i = 0 ;  i < compteur + 1 ; i++)
            {
                laLigne = recuperationLigne[i];
                recuperationDonnees = laLigne.split("|");//découpe la ligne en cours en se basant sur le séparateur | (alt Gr + 6)
                if (donneeUtilisateur == recuperationDonnees[2])
                    {
                        return laLigne;//Retourne la ligne trouvée
                    }
                else
                    {
                        if (i >= compteur)
                            {
                                QString informe = "Fiche inexistante...";
                                QMessageBox::information(this, "Titre de la fenêtre", informe); // Là est le problème...
                            }
                    }
            }
    Que faire ? D’un côté cela est fonctionnel et de l’autre à l’identique quant à l'appel de la commande, mortel pour mon programme…

    Peu me chaut de combattre encore et encore en opposant face à l’ennemi la quête de mes recherches. Peu me chaut de l’entendre ricaner de mon ignorance, car je sais que finalement bien avant la fin du chemin, je le pourfendrai d’une trouvaille géniale et heureuse ou d’un conseil donné par tel ou tel maître.
    Merci de votre aide généreuse.
    Votre serviteur.

    Après multiples recherches, débogages, après sueurs angoissantes et moites transpirations, ce me semble que le bât enfin se montre sous son horrible aspect.
    Il se cachait dans la formulation de la condition.
    au lieu de ">=" il fallait tout simplement "=".
    Pour l'heure le programme me remercie en m'affichant ce qu'il doit m'afficher.
    Aurais-je trouvé mon épée de vérité ? Pour ce cas ci tout au moins...
    Donc je mets un résolu en priant les dieux du Qt qu'il n'y ait point de malchanceuse résurrection du méchant méchant, dont je proclame la victoire sur lui à la pointe d'une longue et pénible recherche.
    Maître Amnell déclare :
    La solution étant de te servir d'un sabre plus adapté à tes besoins, le sabre qui appartenait dans les temps anciens à Maître pointeur.
    Je sais bien que je n'ai pas résolu ce problème de méconnaissance, mais je crois qu'avec le temps et l'expérience, je finirais pas comprendre vraiment à quoi sert le pointeur.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Pour les pointeurs tu peux toujours regarder ce tuto de developpez.com : ça sera un bon début. Je suis moi aussi passé par ce tuto : ça sert déjà à bien comprendre le principe.

    En espérant que ça pourra t'aider.

    Bon week-end. Cordialement, Gizmo.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Souci avec QMessageBox
    Par geek-59600 dans le forum Débuter
    Réponses: 17
    Dernier message: 26/01/2009, 22h25
  2. quelques soucis avec word 2000
    Par ramchou dans le forum Word
    Réponses: 3
    Dernier message: 06/09/2004, 18h13
  3. souci avec un algorithme
    Par slider16 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 22/03/2004, 17h17
  4. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52
  5. Réponses: 4
    Dernier message: 16/02/2003, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo