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 :

Passer d'une classe à une autre


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2009
    Messages : 128
    Par défaut Passer d'une classe à une autre
    Bonjour,

    Je sollicite votre aide pour savoir s'il est possible d'utiliser les objets d'une classe dans une autre classe.
    J'ai une fenêtre, qui après un clic sur un bouton ouvre une autre fenêtre, qui est en fait une boite de dialogue. Je voudrais utiliser les noms des widgets de la main window dans cette boite de dialogue. Mais je n'y arrive pas.

    Comment faire svp?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Utilise l'amitié entre les classes avec le mot-clé friend.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2009
    Messages : 128
    Par défaut
    Merci pour ta réponse. STP, tu peux me donner plus de détails sur le mot clé friend.
    Merci.

  4. #4
    Invité
    Invité(e)

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 126
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    J'ai un petit doute sur le friend ( enfin, je veux dire que cela ne me semble pas la meilleure solution )
    Habituellement, lorsque j'ai besoin de passer des informations aux Dialogs, j'utilise le constructeur pour cela ( je peux aussi le faire avec des setters )
    Sinon, si on veut récupéré des valeurs de la Dialog, moi, j'utilise des getters selon le principe suivant:

    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
     
    void monSlotQuiEstTropBeau(void)
    {
        int retour = 0;
     
        MyDialog md(param1,param2,...,this);
     
        // Exemple possible
        md.setParam42(42);
     
        retour = md.exec();
     
        if ( retour == Qt::Accepted )
        {
            // Autre exemple
            var1 = md.getParam1();
        }
        else
        {
            // L'utilisateur a annulé ou autre donc je ne fais rien et je ne garde pas les paramètres
        }
     
        // Ici le destructeur est appelé car c'est une variable locale :)
    }
    Voilà comment je fais ... mais je ne sais pas si c'est le mieux, mais perso je prefère ça aux firends
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Le soucis c'est qu'avec les accesseurs et mutateurs, ce ne sont pas les deux classes qui ont accès à ces éléments mais tout le code. L'amitié corrige ce problème, ce n'est pas pour rien si ce concept existe.

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2009
    Messages : 128
    Par défaut
    Bonjour,

    J'ai essayé la technique friend. Elle ne marche pas bien. Le contenu que je veux échanger de la main window à la dialogue est le contenu d'une comboBox.
    Quand je fais juste friend class DialogBox, il ne reconnait quand même pas le nom de ma comboBox.
    J'ai essayé friend QComboBox combo, mais il me sort le message suivant:
    combo is neither function nor member function; cannot be declared friend.

    J'ai essayé aussi, la seconde technique, mais elle ne marche pas non plus dans mon cas. Peut être parce que je code la boîte de dialogue dans un autre fichier. Un #include "mainWindow.h" ne suffit pas.

    Merci.

Discussions similaires

  1. Passer un attribut d'une classe à une autre
    Par janyoura dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 26/05/2014, 16h01
  2. Ajouter une classe à une classe
    Par benooo dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 05/02/2014, 18h22
  3. Passer des arguments d'une classe à l'autre
    Par l0quito dans le forum Odoo (ex-OpenERP)
    Réponses: 25
    Dernier message: 19/11/2013, 16h46
  4. Réponses: 2
    Dernier message: 19/07/2013, 15h34
  5. Réponses: 8
    Dernier message: 04/04/2006, 17h29

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