Lol est-ce vraiment une mauvaise idée ? Mon programme est beaucoup plus complexe que ce que j'explique.
En fait, j'utilise Kivy et j'ai fait un screen manager, j'aimerai pouvoir récupérer des variables entrées tout au long des pages... Chaque page étant définie dans une classe, je me suis dit que je pouvais stocker ça dans des variables globales. Pour pouvoir les afficher à la fin...
class OneScreen(Screen): m = ObjectProperty(None) f = ObjectProperty(None) s = 'undefined' def save(self): if self.m.state == 'down': s = 'm' elif self.f.state == 'down': s = 'f'
class Test(Screen): lab = ObjectProperty(None) o = OneScreen() lab = o.s
sm = ScreenManager() sm.add_widget(OneScreen(name='menu')) sm.add_widget(Test(name='test'))
Voilà en très simplifié, et quand je fais lab = s, je ne sais pas comment faire pour dire que je veux la valeur de s qui a été donnée dans la classe précédente...
class OneScreen(Screen):
m = ObjectProperty(None)
f = ObjectProperty(None) s = 'undefined'
def save(self):
if self.m.state == 'down':
s = 'm'
elif self.f.state == 'down':
s = 'f'
class Test(Screen):
lab = ObjectProperty(None)
o = OneScreen() lab = o.s
sm = ScreenManager()
sm.add_widget(OneScreen(name='menu'))
sm.add_widget(Test(name='test'))
Non cela ne fonctionne pas car dans B cela recrée une instance de A, donc ça marche si v est modifié dans l'initialisation mais si v se modifie par une condition, l'instance recréée de A dans B ne prendra pas cette modif en compte...
J'ai tenté mais cela ne fonctionne pas, je ne peux pas entrer l'état par défaut de m et f car en fait dans mon appli kivy ce sont des boutons et le 'down' signifie qu'on a appuyé sur ces boutons.
Quand cela fonctionne sur un code simple, ça fonctionne aussi sur un code complexe, il suffit de donner le bon code simple à mettre en place pour tes tests.
Je crois fermement que cette solution est celle que tu souhaites, seulement, tu ne dois pas l'utiliser correctement. Quelques questions pour guider un peu...
Tu as dû créer un callback permettant de d'agir lorsqu'on appui sur un bouton, de là qu'as-tu fais ?
Évidemment je fais tout cela en freestyle, mais ça doit fonctionner et modifier la clé m du dictionnaire, lorsqu'on appui sur le bouton avec cette ligne
Bon finalement j'ai tout mis dans une même classe et j'ai passé mes variables en argumant.
Merci beaucoup pour ton aide !
Je mets le sujet en résolu !
Créer une variable globale
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Voilà en très simplifié, et quand je fais lab = s, je ne sais pas comment faire pour dire que je veux la valeur de s qui a été donnée dans la classe précédente...
Avec un dictionnaire pour contrôler tes variables, peut-être ?