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 :

Accesseurs en Qt


Sujet :

Qt

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut Accesseurs en Qt
    Voila, le sujet est clair, j'ai un problème de compréhension des accesseurs sous Qt (aussi appelé Get, Getteurs).

    Je vous explique ce que je veux:
    dans une de mes classes, j'ai un qui me permet de d'entrer un code proporietaire à l'execution de mon programme.
    dans une autre fenetre, et donc dans une autre classe, il me faut réafichier ce codeO.

    Dans la classe même où mon codeO existe, j'ai donc créé une méthode qui ne fonctionne pas (erreur à la compilation), ce qui me parait un peu normal quand même... (pas de valeur pointée dans mon QLineEdit)
    j'ai donc essayé mais pas plus de succès.

    Je vous pose donc la question, vers quoi dois-je m'orienter?
    vers la convertion d'un QLineEdit en int?

    sachant que mon codeO, ne dois pas être modifiable dans la classe ou je l'appel...

    code entier:
    dans le .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       public:
            FicheLocataire();
            int getCodeO();
     
    protected:
            void code();
     
            QLineEdit *codeO;
             QLabel *LABELcodeO;
    dans 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
    void FicheLocataire::code()
    {
        LABELcodeO = new QLabel(tr("N° Code O.: "), this);    
            codeO = new QLineEdit(this);
            codeO->setMaxLength(5);
            codeO->setFixedWidth(40);
                   informationLayout->addWidget(LABELcodeO, 3, 0);
                   informationLayout->addWidget(codeO, 3, 1);
    }
     
     
    int FicheLocataire::getCodeO()
    {
        return this->codeO;      
    }


    merci d'avance

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Salut.
    COmment veut créé un int a partir d'un pointeur sur une QLineEdit???

    Que veut tu faire?
    accéder à la line edit?
    recuperer le contenue de la line edit?

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    Ce que je cherche à faire, c'est à afficher la valeur de ma QLineEdit sans quelle soit modifiable, mais pour garder un minimum de "beauté" dans le programme final, j'aimerai que ça ai la tête d'un QLineEdit (dans la limite du possible évidemment, j'en demande pas trop non plus).

    Mais laissons la "beauté" de coté pour le moment.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Somato Voir le message
    Ce que je cherche à faire, c'est à afficher la valeur de ma QLineEdit sans quelle soit modifiable, mais pour garder un minimum de "beauté" dans le programme final, j'aimerai que ça ai la tête d'un QLineEdit (dans la limite du possible évidemment, j'en demande pas trop non plus).

    Mais laissons la "beauté" de coté pour le moment.
    ???
    je comprend pas ton problème. TU n'arrive pas à afficher ta QLineEdit????

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    La QLineEdit s'affiche très bien dans la classe où elle est codé.
    Moi je veux aussi affiché la valeur que j'entrerai dans cette QLineEdit, dans une autre fenêtre (une autre classe) et c'est ça que je n'arrive pas à faire.

    Pour être clair:
    j'ai un codeP dans ma classe proprietaire, et j'ai le même codeP affiché dans la classe immeuble correspondant au propriétaire.
    à l'exécution de mon progamme: j'entre la valeur de codeP dans la fiche de mon proprietaire, en cliquant sur un bouton, je passe ensuite à la fiche immeuble corespondant au proprietaire en question, et dans cette fiche, il y a un rappel du codeP du propretaire (qui ne doit pas être modifiable)

    Donc il y a bien la notion de get (accesseur) il me semble.
    J'espère être assez clair?

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Tu veut donc avoir accés au contenue de la QLineEdit?
    Tu peut utiliser la fonction text() qui te donne une QString
    http://qt.developpez.com/doc/latest/...html#text-prop

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    Les accesseurs utilisés en C++ n'existent donc pas avec les objets de Qt?

    Bon je vais regarder pour utiliser cette fonction alors, j'espère qu'elle ne pose pas de problème avec les membres private/protected des classes.

    Merci, je regarde ça.

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Somato Voir le message
    Les accesseurs utilisés en C++ n'existent donc pas avec les objets de Qt?

    Bon je vais regarder pour utiliser cette fonction alors, j'espère qu'elle ne pose pas de problème avec les membres private/protected des classes.

    Merci, je regarde ça.
    ??? je comprend pas ton problème dsl????
    tu veut avoir accés au QLineEdit par une fonction get?

    tu peut faire ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    const QLineEdit * maClass::getCodeO() 
    {
    return codeO;
    }
    Le const permet d'empêcher d'utiliser des fonction qui modifie la QLineEdit

  9. #9
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    C'est en effet ce que je cherchais, je vais plutôt me mettre à tester ton code, mais j'ai une petite question quand à celui-ci.

    Déja, je n'est jamais vu de fonction pointée, c'est une première pour moi (je pense à ton morceau de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QLineEdit * maClass::getCodeO()
    ) et c'est ce qui me bloquait, car je ne pensais pas que cela était possible!

    Sinon, ma question est la suivante:
    pourquoi faire: alors que je serais plutôt vraiment tenté de faire: étant donné que mon code0 est une valeur pointée?

  10. #10
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Déja, je n'est jamais vu de fonction pointée
    fonction pointé???
    La c'est une fonction qui retourne un pointeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    pourquoi faire: alors que je serais plutôt vraiment tenté de faire: 
    Ici c'est la même chose.

    Tu débute en C++?
    tu développais avec quel language avant?

  11. #11
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    En fait, j'effectue ma première année d'étude d'information de programmation.
    J'ai donc vu JAVA et ensuite C++ très rapidement.

    En ce moment je suis en stage pour déveloper une application et j'ai choisis Qt pour les belles fenettres qu'on m'y propose

    Mais on peut tout à fait dire que je débute en C++.
    (n'empèche que j'avais jamais connu de cas avec une fonction qui retourne un pointeur, mais j'y vois clair maintenant merci, en fait il n'y a rien d'exceptionnel :p)

  12. #12
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Pour le C++, je te conseil de regarder sur le site. IL y as beaucoup de tuto, cour ...
    Sinon IL existe QtJambi : Qt en JAVA

  13. #13
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    je pense être plus à l'aise avec C++ tout de même (j'avais en effet déjà remarqué qu'il y a Jambi) mais merci

    Sinon, je pensais que mon problème était due à une particularité de Qt, alors qu'en fait c'était une mesconnaissance de C++, si j'avais su, je serais allé voir dans la section C++

    Encore merci, la je n'ai plus d'erreur de compilation!

  14. #14
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    Par contre cette fois j'ai un problème quand même pour utiliser mon get dans ma nouvelle classe qui doit récupérer la valeur de mon codeO.

    J'ai fais comme ceci:
    MaNouvelleClasse.cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numCodeO = new QLineEdit(MonAncienneClasse.getCodeO(), this);
    Mais ça ne fonctionne donc pas.
    D'après la doc:
    QLineEdit ( const QString & contents, QWidget * parent = 0 )
    Peut-on donc convertir un QLineEdit en QString?
    Quelle est la meilleur façon de faire pour utiliser mon get??

  15. #15
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Somato Voir le message
    Peut-on donc convertir un QLineEdit en QString?
    Quelle est la meilleur façon de faire pour utiliser mon get??
    http://www.developpez.net/forums/sho...00&postcount=6

  16. #16
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    erf en effet désolé!
    Et merci beaucoup.

  17. #17
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    Bon, ben ça m'embète mais je n'arrive pas à utiliser la fonction (ou la proporiété) text.

    j'ai fais ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    const QString *FicheImmeuble::getCodeI()
    {
        codeI->text();
        return this->codeI;  
    }
    le compilateur m'affiche l'erreur suivante:
    ficheimmeuble.cpp: In member function `const QString* FicheImmeuble::getCodeI()'
    :
    ficheimmeuble.cpp:63: error: cannot convert `QLineEdit*' to `const QString*' in
    return
    mingw32-make[1]: *** [release/ficheimmeuble.o] Error 1
    mingw32-make[1]: Leaving directory `C:/Documents and Settings/BMG/Bureau/fiche'
    mingw32-make: *** [release] Error 2
    J'en déduit donc une mauvaise utilisation de text()...
    mais j'arrive pas à trouver la bonne solution.
    J'ai essayer de convertir codeI en QString en dehors de la fonction get, j'ai essayer de créer une chaine de caractère dans le genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    QString *chaine = new QString();
    codeI->text();
    chaine = codeI;
    return->chaine;
    mais ça ne va pas non plus...

    Merci d'avance encore une fois.

  18. #18
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    ????
    Exemple moi ligne à ligne ce que font tes codes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    const QString *FicheImmeuble::getCodeI()
    {
        codeI->text();
        return this->codeI;  
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    QString *chaine = new QString();
    codeI->text();
    chaine = codeI;
    return->chaine;
    et tu comprendra ton problème. Sinon faut que tu reprenne le C++ depuis le début... (ce n'est pas une moquerie)

  19. #19
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    ????
    Exemple moi ligne à ligne ce que font tes codes
    Je comprends pas trop ce que tu me demandes de faire, je vais donc expliquer les lignes de mon code comme je peux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    const QString *FicheImmeuble::getCodeI()
    {
        codeI->text(); //utilise la fonction text() sur le poiteur codeI
        return this->codeI; //retourne codeI  
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    const QString *FicheImmeuble::getCodeI()
    {
    QString *chaine = new QString(); //création pointeur "chaine" vers QString
    codeI->text(); //utilise la fonction text() sur le poiteur codeI
    chaine = codeI; //affectation de la valeur de codeI dans chaine
    return->chaine; //retourne chaine
    }
    Je sais que j'ai une connaissance incomplète de C++
    disons que j'ai bcp de lacunes encore

  20. #20
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    et si c'était du java tu aurais écrit la même chose?
    (ce n'est qu'une question)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    const QString *FicheImmeuble::getCodeI()
    {
        codeI->text(); //j'appel la fonction text qui me retourne une QString.
                            //Le retour n'est pas utilisé
     
        return this->codeI; //retourne codeI  (Pointeur de QLineEdit )
                                  // ERREUR codeI n'est pas un pointeur sur une QString
     
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const QString *FicheImmeuble::getCodeI()
    {
    QString *chaine = new QString(); //création pointeur "chaine" vers QString
    codeI->text(); //j'appel la fonction text qui me retourne une QString.
                        //Le retour n'est pas utilisé
     
    chaine = codeI; //ERREUR :affectation d'un pointeur sur QLineEdit 
                          //vers un pointeur de QString 
     
    return->chaine; //retourne chaine (Pointeur de QString)
    }
    Je sais que j'ai une connaissance incomplète de C++
    disons que j'ai bcp de lacunes encore

    Le problème est que la tu va droit dans le mur... Reprend les base du C++ sinon tu va pas y arriver... dsl


    T'as fonction aurais du ressembler à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    QString FicheImmeuble::getCodeI()
    {
    return codeI->text();
    }

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Outils pour creer les accesseurs et les mutateurs
    Par MarieMtl dans le forum MFC
    Réponses: 3
    Dernier message: 03/10/2005, 17h03
  2. Réponses: 6
    Dernier message: 02/09/2005, 20h36
  3. [Language][constructeur] - attributs ou accesseur
    Par grand's dans le forum Langage
    Réponses: 6
    Dernier message: 26/04/2005, 08h47
  4. [C#] [VS.NET] Peut on faire un accesseur sur objets?
    Par Designotik dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/01/2005, 21h56
  5. [NetBeans 4.0] Accesseur?
    Par Kaor dans le forum NetBeans
    Réponses: 2
    Dernier message: 20/12/2004, 14h22

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