Modification de l'attribut dans une classe différente
cs_asterixobelix
Messages postés15Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 5 janvier 2013
-
4 janv. 2013 à 20:08
cs_asterixobelix
Messages postés15Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention 5 janvier 2013
-
5 janv. 2013 à 16:45
Bonjour,
J'ai une classe "De" pour gérer un Dé avec une fonction tirage aléatoire "lance_de".
J'ai une autre classe "fenetre" pour gérer mon affichage.
J'ai une classe "mon_app" pour gérer le tout. Dans cette dernière je souhaite modifier l'attribut text de la classe "fenetre" avec le résultat de la fonction "lance_de" de la classe "De".
Je n'arrive pas à faire afficher le résultat du tirage.
Mon code allégé:
import wx
import random # import de la classe " random "
class De: # définition de notre classe dé
""" Classe définissant un dé caractérisé par :
son nombre de faces
sa couleur """
def __init__(self, couleur, face): # notre méthode constructeur
"""constructeur"""
self.couleur=couleur
self.face=face
self.point=""
def lance_de(self): # méthode utilisateur ne pas mettre le double " _ "
self.point=random.randint(1, self.face) # nombre aléatoire compris entre 1 le nb. de faces
class Fenetre(wx.Frame):
def __init__(self, titre):
wx.Frame.__init__(self, None, 1, title titre, size (200, 100))
conteneur wx.Panel(self, 1, size self.GetClientSize())
text="0"
etiquette wx.StaticText(conteneur, 1, text, style wx.ALIGN_CENTRE)
etiquette.CentreOnParent()
class MonApp(wx.App):
def OnInit(self):
fen = Fenetre("Fenêtre 1")
fen.Show(True)
self.SetTopWindow(fen)
CubeAPoint=De("Vert",6)
CubeAPoint.lance_de()
fen.text=str(CubeAPoint.point)
#print (fen.text)
return True
app = MonApp()
app.MainLoop()
Merci de m'aider, je suis débutant.
Obélix
A voir également:
Modification de l'attribut dans une classe différente