|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||||
|
Membre du Club
![]() Inscription : décembre 2007 Messages : 68 ![]() |
Bonjour
Je bute sur deux problème concernant mon code. Le code en soit marche bien mais il y'a deux chose que je n'arrive pas a comprendre. j'ai deux classes un classe MainApp et une MenuMap qui gère l'affichage de bouton pour MainApp. Toute mes variable son dans MainApp. La première chose que je ne comprends pas c'est le refus d'une fonction de m'afficher un message en fin de code. Code :
Code :
La deuxième question porte sur la façon de coder. Dans MenuMap, j'ai instancié une case a cocher. Code :
NameError : global name 'parent' is not defined J'ai bien essyé de faire un global qui contiendrait parent pour voir, mais le code ne se lance pas si je le fais. Code :
Code :
je trouve que ça nuit a la propreté du code. Bonne soirée |
||||||||||
|
|
00
|
|
|
#2 | |||||
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 719 ![]() |
Salut
Citation:
self.item.pack est inutile car canvas est geometry manager. Mais la cause de la cause est que self.can.create_image retourne un entier (et non un Widget) qui peut être utilisé pour identifier l'objet du canvas. L'histoire de "parent". parent est recherché dans l'espace de nom locals() puis globals(). Le locals() d'une méthode est initialisé avec les paramètres nommés. Dans la construction: Code :
Dans la construction: Code :
Les widgets de tk sont composites: tous les widgets ont "parent" et "fils". Mais les variables correspondantes sont "master" et "children" (un dict). Essayez pour voir. - W
__________________
Architectures Post-Modernes |
|||||
|
|
00
|
|
|
#3 | ||||||
|
Membre du Club
![]() Inscription : décembre 2007 Messages : 68 ![]() |
A merci pour les explication
Pour master ça marche, je met juste le code savoir si vous pouvez mz dire si je l'ai bien utilisé. Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#4 | ||||||
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 719 ![]() |
Salut,
Citation:
Citation:
Code :
Essayez plutot: Code :
__________________
Architectures Post-Modernes |
||||||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : décembre 2007 Messages : 68 ![]() |
A d'accord j'ai crue que photo servait juste de centenaire temporaire et que tout la référence a l'image se gardait dans la variable self.image.
C'est dommage pour Tk, je l'ai choisie en pensant justement que ça serait plus simple pour débuter en poo. Merci ça marche très bien. Bonne soirée, |
|
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 719 ![]() |
Citation:
Les implications de l'intégration de Tk dans Python pour la programmation d'application graphiques sont compliquées pour un débutant en POO. L'important est d'arriver à faire des programmes qui marchent pour que vous touchiez du doigt les principes de bases. Lorsque vous aurez plus de recul, vous pourrez penser à "mieux". - W
__________________
Architectures Post-Modernes |
|
|
|
00
|
|
|
#7 | ||
|
Membre du Club
![]() Inscription : décembre 2007 Messages : 68 ![]() |
Bonsoir, je tombé sur un problème assez étrange.
Suite a l'ajout d'un attribut j'ai obtenu se message d'erreur : Code :
Bonne soirée |
||
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 719 ![]() |
Ajouter un attribut, c'est assigner un objet à la "variable" correspondante.
Et comme Python est interprété, rien n'empêche d'essayer d'accéder à la "variable" avant qu'elle n'ait été définie. Quand le faire? Le langage n'impose pas de règles mais il est sage de localiser l'assignation/création dans la construction de l'instance (__new__, __init__). Ou de créer par des "variables" de classes avec des valeur par défaut qui seront remplacée par des variables d'instances dès la première assignation. - W
__________________
Architectures Post-Modernes |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com