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 :

QMessageBox et fermeture de la fenêtre principale

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut QMessageBox et fermeture de la fenêtre principale
    Bonjour

    J'ai un petit probléme avec les QMessageBox.
    Quand je mets w.show(); dans mon main et que j'apelle ma fonction messagebox() je clique sur ok tous se passe bien.
    Parcontre quand je cache ma fenêtre principal w.hide(); j'apelle ma fonction messageBox je clique sur ok ma QmessageBox se ferme mais mon programme se quitte.
    Je voudrais que quand je mets hide() mon programme tourne toujours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include "mafenetre.h"
    #include <QtGui/QApplication>
     
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);
    	Mafenetre w;
    	w.hide(); 
    	return a.exec();
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void Mafenetre::messageBox(QString titre,QString message,QString icon)
    {
    	if(icon=="info")
    		QMessageBox::information(0,titre,message);
    	else if (icon=="erreur")
    		QMessageBox::critical(0,titre,message);
    	else if (icon=="danger")
    		QMessageBox::warning(0,titre,message);
    	else if (icon=="quest")
    		QMessageBox::question(0,titre,message);
    }

  2. #2
    Membre confirmé
    Homme Profil pro
    Technicien Supérieur en Développement Industriel
    Inscrit en
    Février 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Développement Industriel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 65
    Par défaut
    Salut,

    Ton problème est tout à fait normal.

    Essaye de faire venir ton QMessageBox dans le constructeur de ton application. A ce moment, cela devrait marcher comme tu le souhaite.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut
    Oui mais ce que j'aimerais c'est pouvoir executer mon QMessageBox quand je le veut exemple quand je clique sur un bouton.

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien Supérieur en Développement Industriel
    Inscrit en
    Février 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Développement Industriel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 65
    Par défaut
    Citation Envoyé par france38 Voir le message
    Oui mais ce que j'aimerais c'est pouvoir executer mon QMessageBox quand je le veut exemple quand je clique sur un bouton.
    Il suffit de mettre ta fonction "void Mafenetre::messageBox(QString titre,QString message,QString icon)" dans "mafenetre.cpp" (ce qui apparemment est déjà le cas) et faire :

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void HandlingMXF::on_pushButton_clicked()
    {
        messageBox(/*QString titre*/,/*QString message*/,/*QString icon*/)
    }

    Si tu utilises Qt Creator, dans ton fichier "Forms" (mafenetre.ui) un clic droit sur un des tes widgets et avec l'option "go to slot ..." te permet de réaliser ces fonctions.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut
    Merci pour la réponse mais mon exemple n'est pas bon dutout.
    Car j'ai dit au début que justement la fenêtre (mafenetre.ui) principal devais être cacher (w.hide()) car quand elle est en show ceci fonctionne.

    Enfête mon code est dans un programme avec client/serveur donc la c'est le serveur et il affiche des messageboxs en fonction de certain action. Donc par exemple si il y a une erreur il affiche le messagebox correspondant.

    J'ai essayer de créer une nouvelle fenetre autre que la principal, elle ce créer mais quand je la ferme avec maNewFenetre.close(), elle ferme tous le programme.

    Je n'ai pas bien compris pourquoi ceci est normal.
    Pourrais tu me l'expliquer ?
    Ton problème est tout à fait normal.

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien Supérieur en Développement Industriel
    Inscrit en
    Février 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Développement Industriel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 65
    Par défaut
    Cela ne marche pas a cause de cette partie

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include "mafenetre.h"
    #include <QtGui/QApplication>
     
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);
    	Mafenetre w;
    	w.hide(); 
    	return a.exec();
    }

    Ton "main.cpp" n'affiche que ta fenêtre erreur vue que ta fenêtre principale est en "hide" donc elle se termine avec la fin de ta messagebox.

    Si je comprends bien ton serveur n'a pas d'interface graphique juste des messagebox qui affiche les erreurs. Dans ce cas la pourquoi ne pas la mettre dans la zone de notification comme expliqué ici
    Il restera actif et invisible à l'opérateur.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut
    Non car j'ouvre aussi d'autre fenêtre qui sont differente de la principal.
    Quand j'ouvre une autre fenêtre et que la principal est en hide le programme va quitter si je la ferme.

  8. #8
    Membre confirmé
    Homme Profil pro
    Technicien Supérieur en Développement Industriel
    Inscrit en
    Février 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Développement Industriel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 65
    Par défaut
    Deux questions à ce poser :
    Pourquoi ne veux tu pas voir ta fenêtre principale ?
    et est-ce que important qu'elle le soit ?

  9. #9
    Membre expérimenté Avatar de benito9253
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 205
    Par défaut
    Essaye en mettant quitOnLastWindowClosed de la classe QApplication à false:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a.setQuitOnLastWindowClosed(false);
    http://doc.qt.nokia.com/latest/qappl...dowClosed-prop

  10. #10
    Invité de passage
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 1
    Par défaut
    merci benito9253, c'est très utile

Discussions similaires

  1. Fermeture des graphes avec la fenêtre principale
    Par nabil123456 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 08/04/2015, 11h28
  2. [WD10] problème lors de la Fermeture de ma fenètre principale
    Par aldama dans le forum WinDev
    Réponses: 7
    Dernier message: 29/07/2011, 01h25
  3. Réponses: 7
    Dernier message: 10/03/2011, 12h56
  4. fermeture de la fenêtre principale
    Par emmy99 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 18/03/2008, 12h05
  5. fermeture fenêtre principale
    Par philobedo dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 28/07/2006, 10h34

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