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

wxPython Discussion :

variable globale d'une application wxpython


Sujet :

wxPython

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2008
    Messages : 51
    Points : 39
    Points
    39
    Par défaut variable globale d'une application wxpython
    Bonsoir,
    comment pourrais je déclarer une variable globale à toute une application wx.app?
    je veux avoir une variable que je peux manipuler dans toutes les frames de l'application, donc lors que j'effectue un changement la dessus, ce changement sera remarqué depuis n'importe quelle frame de l'application
    Merci d'avance

  2. #2
    Nouveau membre du Club
    Inscrit en
    Février 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2008
    Messages : 51
    Points : 39
    Points
    39
    Par défaut
    C'est bon j'ai consulté cette documentation

    http://wikipython.flibuste.net/moin....efe6d54c2f0652

    je suis convaincu qu'il vaut mieux éviter d'utiliser des variables globales entre les modules de l'application surtout dans mon cas en particulier (où une variable globale doit être prête à être modifiée par n'importe quel module)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 49
    Points : 45
    Points
    45
    Par défaut
    C'est faisable d'utiliser une globale spéciale dans wxpython.
    Dans le cas d'une globale classique, du fait du fonctionnement spécial de wxpython, elle risque d'être inutilisable si tes modules appellent wx.
    Dans ce cas, il vaut mieux utiliser une globale spéciale, genre singleton.
    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
     
    class Singleton(type):
        """Classe spéciale """
        def __init__(cls,name,bases,dic):
            super(Singleton,cls).__init__(name,bases,dic)
            cls.instance=None
        def __call__(cls,*args,**kw):
            if cls.instance is None:
                cls.instance=super(Singleton,cls).__call__(*args,**kw)
            return cls.instance
     
    class MyGlobale(dict):
        __metaclass__ = Singleton
        """Classe spéciale qui fonctionne avec
        la classe Singleton.
        Elle est destinée à enregistrer les variables globales.
        En effet, les globales sont réinitialisées dans wxpython
        lorsque le même module est chargé plusieurs fois, ce qui les fait disparaître.
        Ces classes pallient ce problème.
        From:
        - http://article.gmane.org/gmane.comp.python.wxpython/13175/match=globals
        - http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/102187"""
    Voir les liens pour utilisation

    Dominique

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Variables globales dans une application ?
    Par Foxie dans le forum Débuter
    Réponses: 4
    Dernier message: 07/11/2009, 13h56
  2. Réponses: 3
    Dernier message: 20/03/2009, 15h44
  3. Réponses: 9
    Dernier message: 16/03/2006, 20h34
  4. Réponses: 11
    Dernier message: 08/02/2006, 16h59
  5. Variables globales dans une classe
    Par vanitom dans le forum C++
    Réponses: 16
    Dernier message: 14/01/2005, 14h40

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