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

Qt Discussion :

Problème de communication entre fenêtres


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Par défaut Problème de communication entre fenêtres
    bonjour à tous,

    Voila mon soucis : j'ai créé une fenêtre qui permet le réglage d'une partie de mon logiciel, a partir de cet fenêtre des boites de dialogues doivent être ouverte pour permettre des sous réglages en rapport avec ma fenêtre précédente, jusque la pas de soucis j'arrive bien a créer toute mes fenêtres etc..., seulement je ne sais pas comment retourner les informations renseignées par l'utilisateur dans les sous fenêtre à la fenêtre principal...
    J'ai étudier la class QInputDialog pour essayer de la reproduire avec des QDialog a moi, sans succès j'ai une erreur de compilation me disant que je ne peu pas appeler ma méthode sans objet..., j'ai également essayer par le biais du constructeur de ma sous fenêtre en lui passant en paramètre la fenetre parent, encore un echec...
    Donc pour résumer je veux que ma fenêtre principal (A) puisse récupérer les réglages effectué au sein de ma sous fenêtre (B).
    J'espère avoir été clair dans mes explications.
    pour info je met un bout de code correspondant a ma QDialog personnalisé, je suis preneur si vous avez une quelconque piste à me fournir.

    Merci d'avance.

    le .h
    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
     
    #include "ui_frm_typeAlerte_insuffisant.h"
     
    class Frm_typeAlerte_insuffisante : public QDialog
    {
        Q_OBJECT
     
        public:
            Frm_typeAlerte_insuffisante(QDialog *parent = 0);
            int getTypeAlerte_Insuffisante(QDialog *parent = 0,bool *ok = 0);
     
        private slots:
     
        private:
            Ui::Frm_typeAlerte_insuffisante ui;
    };
    le .cpp :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    #include "frm_type_alerte.h"
     
    /*------------------------------------------------------------------------------------------
      Alerte Insuffisante
    ------------------------------------------------------------------------------------------*/
    Frm_typeAlerte_insuffisante::Frm_typeAlerte_insuffisante(QDialog *parent) : QDialog(parent)
    {
        ui.setupUi(this);
        connect(ui.valider,SIGNAL(clicked()),this,SLOT(verif()));
    }
    int Frm_typeAlerte_insuffisante::getTypeAlerte_Insuffisante(QDialog *parent,bool *ok)
    {
        Frm_typeAlerte_insuffisante dialog(parent);
        int ret = dialog.exec();
        if(ok)
            *ok = !!ret;
        if(ret)
        {
            if(ui.rb1->isChecked())
            {
                return 1;
            }
            else if(ui.rb2->isChecked())
            {
                return 2;
            }
            else
            {
                QMessageBox::warning(this,"Erreur","Vous devez choisir une des options disponnibles si dessus avant de valider");
            }
        }
    }
    l'instanciation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     bool ok = false;
     int retour_typeAlerte_insu = Frm_typeAlerte_insuffisante::getTypeAlerte_Insuffisante(this,&ok);
     if(ok)
     {
           QMessageBox::warning(this,"retour",QString::number(retour_typeAlerte_insu));
     }

  2. #2
    Membre chevronné
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Par défaut
    Il te dit que tu ne peux appeler la méthode sans objet car elle doit être déclarée en static (c'est les cas des méthodes QMessageBox::information, QMessageBox::critical et autres (tous les dialogues tout fait de Qt quoi).

    Donc juste un static devant la définition de getTypeAlerte_Insuffisante dans ton .h devrait suffire (j'ai pas regardé le reste du code hein^^)

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

Discussions similaires

  1. [RMI] Problème de communication entre deux machines distantes
    Par georges_jung dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 10/04/2007, 18h03
  2. [c#] probléme de communication entre classe
    Par OpenGG dans le forum C#
    Réponses: 1
    Dernier message: 24/09/2006, 21h54
  3. Problème de communication entre php et Laszlo(Tomcat)
    Par YUN59 dans le forum Autres langages pour le Web
    Réponses: 1
    Dernier message: 21/07/2006, 13h45
  4. Problème de communication entre C# et ASP
    Par Prowlx dans le forum ASP
    Réponses: 1
    Dernier message: 19/07/2006, 17h37
  5. Problème de communications entre threads
    Par maya09 dans le forum Windows
    Réponses: 1
    Dernier message: 22/02/2006, 22h18

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