cs_rodrigos
Messages postés84Date d'inscriptionjeudi 24 janvier 2002StatutMembreDernière intervention 4 avril 20062 28 janv. 2005 à 08:33
salut,
Pour wxwindows je vais pas pouvoir trop t'aider, mais à mon avis ,
quand tu initialise ta fenêtre il te faut 3 arguments : parent, id et
log. Sinon pour se familiarisé un peu plus avec wxwindows, il existe
visualwx qui te permet de créer des fenêtres.
if __name__ == '__main__':
import sys,os
import run
run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
quand tu fait appel à la variable __name__, elle t'indique qui appelle
le script. Si sa valeur est '__main__', cela veut dire ce script est
exécuté directement( sans passer par un autre script).
Les import permettent de charger des modules (os, sys et run). ça
équivaut en quelque sorte aux include du C. (voir la doc pour plus
d'infos sur chaque modules)
run.main() signifie que ça appelle la fonction main() du module run. Ce
qui ets entre () conrespond aux arguments de la méthode main.
os.path.basename(sys.argv[0])] te permet d'obtenir le répertoire dans lequel est contenu le script
sys.argv est un tableau contenu tous les arguments passés en ligne de commande.
cs_steede
Messages postés13Date d'inscriptionvendredi 31 décembre 2004StatutMembreDernière intervention26 mars 2005 28 janv. 2005 à 13:20
Merci de ton aide.
En fait quand je crée une instance de la classe fenOne() j'écris :
ww = fen0ne(wx.Frame, -1, "titre").
Dans ce cas, il y a le bon nombre d'argument mais le Pyt demand un pointeur !!!!
c'est vraiment dommage, car les instructions de création d'un simple menu sont relativement
simples.
taz_iup
Messages postés179Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention21 mai 20143 30 janv. 2005 à 21:49
Slt..
quelques explications
Ton constructeur ( __init__(...) prend quatre arguments.
-> self est une réfénce sur soi meme
quand tu fais un appel du genre truc.methode(), il est implicite
tu doi le fournir seulement quand tu fait par exemple wx.Frmae.__init__
car tu appelles la methode de la classe et pas de ton objet. Quand tu
crees un objet il est egallement implicite.
-> ensuite tu as mis parent. parent est l'objet qui contient ta fenetre ici c 'est none.
-> id est un identidifiant dans ton environnement
wx. tu peux recuperer tes objets wx apres grace a cet ID mais il reste
facultatif. ut peux donc mettre -1 si tu n'en veux pas sinon tu peux te
servir de wx.NewID() pour en avoir un qui n'est pas utiliser.
-> et ensuite log. une variable que tu utilise toi.
Il faut donc passer quatre -1 arguments ( a cause du self ) lors de la creation de ta fenetre.
ww = fen( None, -1, log )
PS : je ne sais pas a koi saire ton log.
Mais avant de pouvoir creer une fenetre wx , il faut avoir cree l'application wx de type wx.App :
class MyApp( wx.App ):
def OnInit( Self ):
try:
win = fenone( None, -1, log )
win.CenterOnParent( wx.BOTH ) # centre la fentetre
win.Show( True ) #affiche la fentre
Self.SetTopWindow( win )
return True
except Exception, e:
print e
time.sleep( 5 )
return False
app = MyApp(True) # creer une application en redirigeant la sortie
standart passe False si tu veux garder la sortie standart dans la
console.
app.MainLoop() # Lance l'appli wx.
Voila j'espere que j'a repondu a tes questions....