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. #21
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Par défaut
    ah excuse moi, j'avais aussi déjà essayé ce que tu me propose (j'avais oublié de le préciser... :p), l'erreur est toujours là même hélas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    const QString *FicheImmeuble::getCodeI()
    {
        return codeI->text();
    }
    ficheimmeuble.cpp: In member function `const QString* FicheImmeuble::getCodeI()'
    :
    ficheimmeuble.cpp:62: error: cannot convert `QString' to `const QString*' in ret
    urn
    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
    Peut être en rapport avec le "const" que tu n'as pas placé?
    Ou alors text() ne retourne pas un pointeur?

    Je suis tout aussi débutant en C++ qu'en Java (je reprécise, mais il me semblait l'avoir déjà dit )

  2. #22
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Par défaut
    En effet, text() ne retourne pas de pointeur

  3. #23
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    Citation Envoyé par Somato Voir le message
    Ou alors text() ne retourne pas un pointeur?

    d'ailleurs la fonction que j'ai écrite n'est pas tout à fait identique à la tienne

    Je suis tout aussi débutant en C++ qu'en Java (je reprécise, mais il me semblait l'avoir déjà dit )
    Tu devrais regarder du coté C++ du site. Si tu ne prend pas les bonnes bases, tu va aller droit dans le mur.

  4. #24
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Par défaut
    Tu devrais regarder du coté C++ du site. Si tu ne prend pas les bonnes bases, tu va aller droit dans le mur.
    Je fais ça tout en étant en train de réaliser mon projet, mais j'aime bien parfois poser des questions pour avoir justement un exemple sur mon propre code (et non pas des exemples qui ne se rapportent en rien souvent avec ce que je cherche). Je comprends beaucoup mieux quand les finalités sont pour moi

    Bien entendu j'évite quand même d'en abuser :p (enfin je l'espère!)

    Merci beaucoup en tout cas!

  5. #25
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Par défaut
    Encore une chose (et navré de vous déranger encore avec ça )

    J'essaie d'appeler ma fonction getCodeI() dans une autre classe (afin qu'elle me retourne donc mon QString codeI) et j'ai quelques soucis.

    Je procède comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Lot::Lot()
    {
        numCodeI = new QLineEdit(FicheImmeuble.getCodeI(), this);
    }
    Je rappel ma fonction get:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    QString FicheImmeuble::getCodeI()
    {
    return codeI->text();
    }
    L'erreur retournée par le compilateur est:
    lot.cpp: In constructor `Lot::Lot()':
    lot.cpp:51: error: expected primary-expression before '.' token
    mingw32-make[1]: *** [release/lot.o] Error 1
    mingw32-make[1]: Leaving directory `C:/Documents and Settings/BMG/Bureau/fiche'
    mingw32-make: *** [release] Error 2
    La question que je me pose est; étant donné que la fonction text() ne retourne pas un pointeur vers QString, est ce que je peux l'appeler tout de même dans mon QLineEdit?
    QLineEdit::QLineEdit ( const QString & contents, QWidget * parent = 0 )
    à prioris non puisque je ne vois pas l'étoile... et j'ai essayé divers cas de figure du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const QString *FicheImmeuble.getCodeI()
    PS: mon fichier Lot.h possède bien l'include vers <FicheProprietaire.h>

  6. #26
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    FicheImmeuble est un pointeur?

  7. #27
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Par défaut
    FicheImmeuble est ma classe, j'appelle donc la méthode "getCodeI()" de ma classe, déclarée en public, grace au code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FicheImmeuble.getCodeI()
    CodeI, dans ma classe FicheImmeuble, est un pointeur vers QLineEdit,
    et text() me le transforme donc en QString, mais ce n'est donc plus une valeur pointée vers QString que j'ai, c'est bien ce qu'on avais dit précédement non? ->text() ne retourne pas un pointeur (où je confond peut être?)

  8. #28
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    Par défaut
    Tu n'as pas répondu...
    si FicheImmeuble est un pointeur?
    alors c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FicheImmeuble->getCodeI()

  9. #29
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 239
    Par défaut
    Alors c'est qu'il n'en est pas un, puisse que j'ai essayé les trois cas de figure suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FicheImmeuble.getCodeI()
    FicheImmeuble->getCodeI()
    FicheImmeuble::getCodeI() //ceci était juste pour essayer...
    Les trois formes me retournent la même erreur:

    lot.cpp: In constructor `Lot::Lot()':
    lot.cpp:51: error: expected primary-expression before '.' token
    ou
    '->'
    , ou
    '::'
    En fait, QLineEdit fonctionne comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QLineEdit("Chaine", this);
    Le fait qu'il attende (pas nécessairement) une chaine de caractère entre quote pourrait-il me posser problème pour ma fonction?

    Il y a aussi quelque chose de bizarre (enfin pour moi lol)
    dans la doc, il y a deux utilisation différente pour QLineEdit, les voici:
    QLineEdit::QLineEdit ( QWidget * parent = 0 )
    QLineEdit::QLineEdit ( const QString & contents, QWidget * parent = 0 )
    Or, lors d'une erreur dans mon programme, je me suis retrouvé avec ceci dans ma console:
    ../../../../Qt/4.3.4/include/QtGui/../../src/gui/widgets/qlineedit.h:263: note:
    candidates are: QLineEdit::QLineEdit(const QLineEdit&)
    ../../../../Qt/4.3.4/include/QtGui/../../src/gui/widgets/qlineedit.h:88: note:
    QLineEdit::QLineEdit(const QString&, QWidget*)
    ../../../../Qt/4.3.4/include/QtGui/../../src/gui/widgets/qlineedit.h:87: note:
    QLineEdit::QLineEdit(QWidget*)
    mingw32-make[1]: *** [release/lot.o] Error 1
    Ma fonction QLineEdit peut-elle donc accepter une autre QLineEdit en parramètre?
    Si oui, pas besoin de text() alors...

    EDIT: l'erreur n'a pas l'air d'avoir de rapport avec QLineEdit de toute façon, puisque même si je place l'appel de ma méthode ailleurs, n'importe où en fait, j'obtiens le même message d'erreur. Il y a surement quelque chose que j'ai du oublier quelque part...
    à part faire mon include de la classe exportant la méthode dans le fichier header de la classe l'acceuillant, je ne vois pas ce qu'il manque

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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