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 :

Accès variables private ?


Sujet :

Qt

  1. #1
    Membre habitué
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Points : 176
    Points
    176
    Par défaut Accès variables private ?
    Bonjour.

    Je viens d'implémenter quelque chose en Qt qui me satisfait pleinement, mais je ne sais pas trop si c'est dans l'esprit C++ et si ça ne peut pas poser de problème en mémoire.

    J'ai un widget perso QWidget MonWidget, qui a une variable privée : QGraphicsScene *_graphicsScene;
    Comme c'est un composant essentiel de mon widget, je ne voudrais pas avoir à réimplémenter tous les set/get QGraphicsScene dans QWidget MonWidget.

    J'ai donc créé une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    QGraphicsScene* MonWidget::getScene()
    {
        return _graphicsScene;
    }
    Depuis l'extérieur, du widget, je peux donc faire par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monWidget.getScene()->setBackgroundBrush(QColor(255,0,0));
    qui agit directement sur _graphicsScene (variable privée).

    Comme c'est la première fois que je fais ce genre de choses, je voudrai être sûr que c'est "C++ compliant"/"Qt compliant" et que ça ne pourrait pas causer d'éventuels problèmes...

    Merci

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 921
    Points : 220 492
    Points
    220 492
    Billets dans le blog
    127
    Par défaut
    Bonjour,

    Le code actuel est insuffisant pour comprendre le problème. Peut on avoir un projet que l'on puisse tester ?

  3. #3
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 617
    Points
    15 617
    Par défaut
    Bonjour Kaluza

    En général, les fonctions get/set brisent l'encapsulation objet et sont donc à éviter.

    Mais pour la QGraphicsScene, on peut voir que QGraphicsView propose les fonctions scene() et setScene(). Donc ton code n'est pas éloigné de l'esprit de Qt A mon avis, la raison est que la scène n'est pas considérée comme une variable interne de la vue mais elle peut être partagée entre plusieurs vues (pattern modèle-vue). Par contre, cela implique normalement que la responsabilité de la construction/destruction de la scène n'est pas dans la vue.

    En fait, si tu utilises QGraphicsScene, tu ne dois pas hériter de QWidget mais de QGraphicsView (qui hérite lui même de QWidget), qui contient déjà beaucoup de fonction facilitant l'utilisation de la scène (par exemple, appel de la scène lors des mises à jour, envoie des events à la scène, etc.) Repartir de QWidget ressemble beaucoup à "réinventer la roue" (syndrome NIH )

    Bon continuation

Discussions similaires

  1. Acces aux variables PRIVATE
    Par Kezine dans le forum C++
    Réponses: 3
    Dernier message: 02/10/2011, 17h44
  2. Accès Variable globale
    Par viscere dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/07/2007, 16h25
  3. [MT] Galère avec thread et mutex pour accès variable
    Par wadcyr8_197 dans le forum Threads & Processus
    Réponses: 36
    Dernier message: 26/07/2007, 15h45
  4. [POO] Accès variables externes
    Par Milts dans le forum Langage
    Réponses: 6
    Dernier message: 20/05/2007, 21h11
  5. [AS2] Problème d'accès variable
    Par wwave dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 19/01/2006, 15h14

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