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 :

Comment éviter les variables statiques pour l'interface graphique ?


Sujet :

Qt

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Par défaut Comment éviter les variables statiques pour l'interface graphique ?
    bonjour tout le monde,
    J'essaie de réaliser un mahjong en C++, le programme tourne en mode console et j'essaie maintenant de faire l'interface graphique avec Qt mais j'ai quelques problèmes ... évidement !
    Tout d'abord pour mon interface j'ai créé les classes :
    - PlateauLayout héritant de QGridLayout (pour représenter facilement mes tulles),
    - Fenetre héritant de QMainWindow qui sera la fenêtre principale,
    - Bouton héritant de QPushButton, qui représentera les tulles et qui contient mes slots concernant les boutons.

    Le problème est que je crée dans le main un objet Fenetre. Les éléments déclarés dans le constructeur ne sont pas accessibles hors du constructeur, c'est pourquoi je suis obligée de crée des attributs de Fenetre pour réutiliser ces éléments dans d'autres classes (notamment les Boutons que je manipule pas mal).
    Nouveau problème, si je crée un attribut statique dans la classe fenetre, je ne peux pas l'appeler dans une autre classe car l'objet Fenetre n'est pas accessible dans les autres classes.
    Un exemple pour vous aider à voir :
    Je mets un attribut dans la classe Fenetre, j'instancie cet attribut dans le constructeur de fenetre, puis je veux l'utiliser dans des méthodes de la classe Bouton. Je ne peux pas vraiment l'appeler dans la classe Bouton car l'objet Fenetre créé dans le main ne peut pas être appelé dans Bouton (ou alors je ne sais pas comment faire). La solution que j'ai trouvé pour l'instant est de mettre cet attribut en statique, mais je ne pense pas que ce soit la solution la plus propre. Ce type de problème ne se pose pas qu'une fois dans mon code, je suppose donc que d'autres personnes ont eu le problème avant moi, et il doit bien exister un moyen plus propre que de passer par des variables statiques.

    Autre question, qui pourrait résoudre en partie mon problème : Y a t il moyen de faire des multi_array (ou tableau à plusieurs dimensions équivalent) de QPushButton?

    Merci d'avance si vous avez saisi mon problème du premier coup, et n'hésitez pas à me demander des précisions sinon (notamment le code source si besoin)

  2. #2
    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
    Salut
    un signal clicked quelqu'un s'y est connecté et fait une action.

    De ce que j'ai compris, j'ai l'impression qu'il y as un problème de conception.. Il y as un forum jeux 2D-3D, tu de vrais leur demander conseil.

    Qt se base sur un système de parent/Enfant. Il y as des moyen de recherche et trouver d'autre QObject au travers de cette arbre
    http://qt.developpez.com/doc/latest/qobject/#parent
    http://qt.developpez.com/doc/latest/qobject/#findchild
    http://qt.developpez.com/doc/latest/.../#findchildren
    http://qt.developpez.com/doc/latest/...findchildren-2

    A toi de voir si cela t'es utile.

    Vue la nature de ton projet, les QGraphcs serait surement plus adapté.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 057
    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 057
    Billets dans le blog
    142
    Par défaut
    Bonjour,

    Je pense à un problème de conception. À vrai dire, je n'ai surement pas tout compris, et encore, je ne pense pas qu'il y ai besoin de connaitre la fenêtre dans les boutons.
    Si on a besoin de la fenêtre pour agir sur les boutons, on peut toujours crée un signal / slot pour ce faire ( genre Déplace-moi, et encore, cela me semble encore un peu exagéré comme solution )
    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.

Discussions similaires

  1. [Débutant] Comment déclarer des variables publiques pour tous les formulaires
    Par Claude_Azoulai dans le forum C#
    Réponses: 5
    Dernier message: 09/05/2013, 17h50
  2. Réponses: 10
    Dernier message: 03/10/2011, 12h37
  3. Réponses: 6
    Dernier message: 01/08/2011, 00h22
  4. Réponses: 15
    Dernier message: 24/01/2009, 23h24
  5. [Conception] Comment éviter les redondances d’une variable
    Par bilane dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/09/2006, 10h54

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