Pour une application wxPython que je crée, j'ai besoin qu'il y ait une variable qui compte le nombre de cycles que le programme traverse. J'ai plusieurs panneaux qui sont définis dans leur propre classe. La classe frame crée une instance de tous et les panneaux sont affichés ou masqués en fonction des boutons sur lesquels l'utilisateur clique. Pour la majeure partie du programme, le "jeu" tourne à travers trois panneaux (que j'appellerai p1, p2 et p3). Lorsque vous atteignez p3, le programme vous ramène à p1 * \ si vous avez parcouru le cycle pendant un certain temps. En outre, il garde la trace des autres données lors de l'exécution du programme. Mon problème est que je ne suis pas sûr de savoir comment garder une trace de ces données. J'ai essayé d'avoir des variables de classe dans ma classe d'image qui seraient supposées être accessibles à tous les panneaux en utilisant la méthode GetParent() mais j'ai eu peu de chance avec cette approche. J'ai aussi essayé d'utiliser des variables globales mais cela a aussi conduit à une impasse. Toute information sur la façon dont je pourrais éventuellement accomplir cela serait grandement appréciée.wxPython global counter
0
A
Répondre
0
Je ne vois aucune raison pour laquelle les variables globales ne fonctionneraient pas à moins que vous ne reproduisiez des sous-processus. Pour éviter d'avoir à déclarer les globals, placez-les dans un objet comme un dict:
myglobals = {'count': 0}
class whatever:
def blather():
myglobals['count'] += 1
Questions connexes
- 1. global counter in application: mauvaise pratique?
- 2. Counter ++ dans Parallel.ForEach
- 3. Réinitialiser JavaScript Counter?
- 4. GAE Query counter (+1000)
- 5. procédure stockée Hit Counter
- 6. Javascript href link counter
- 7. iPhone Tap Counter
- 8. sondage php mysql counter
- 9. simple php counter
- 10. Cliquez sur counter php mysql?
- 11. Bouton Click Counter en PHP
- 12. tinyMCE word counter pour coller l'aide nécessaire
- 13. Sharepoint hit counter n'est pas affiché
- 14. Android Stop Counter et Destroy Media Player
- 15. information Extrait de javascript counter via PHP
- 16. wxpython wx.EVT_LEFT_DOWN
- 17. wxpython GetStatusText()
- 18. wxpython PyGridTableBase
- 19. wxPython dialogs
- 20. Exécution wxPython
- 21. wxpython compilation
- 22. Global NSString
- 23. Global utf8_encode
- 24. Rails Counter Cache et sa mise en œuvre
- 25. PHP et MySQL hit counter plusieurs pages comptent problème?
- 26. Serveur UDP wxPython fileté
- 27. wxPython - ListCrtl et SQLite3
- 28. Fenêtre Vibreur dans wxPython
- 29. wxPython: Utilisation de EVT_IDLE
- 30. Python2.6 Backtrack/Ubuntu wxPython
Lorsque je mets à jour l'un des globals d'un panneau, il ne peut pas être reporté sur un autre panneau. Dans un de mes panneaux, je dis de mettre à jour le compte quand l'utilisateur appuie sur un bouton, et dans un autre je veux accéder au compte actuel. Quand je fais cela, je reçois seulement le nombre initial que le compte a été réglé. Mais dans le panneau où je fais l'incrément, je suis capable de voir ce que le compte est. Une idée sur pourquoi cela pourrait arriver? (j'espère que je l'ai expliqué correctement) – grassclip
Oui, wxPython peut exécuter chaque panneau dans un sous-processus. Ensuite, vous devrez faire une certaine communication interprocessus. Je ne suis pas sûr de ce qui fonctionnerait le mieux pour ça. Mémoire partagée, peut-être. –
ahh j'ai compris le problème. J'utilise du texte statique pour représenter ce que je veux, et cela signifie que le texte est ... statique. Je vais juste devoir trouver un moyen de mettre à jour le texte chaque fois que je réaffiche le panneau. De plus, j'utilisais incorrectement mes variables globales et je ne connaissais pas la structure dict donc merci beaucoup pour votre aide. Très appréciée. – grassclip