Est-ce que quelqu'un a une idée comment passer des paramètres entre les
pages d'un wizard ? Dans l'exemple de wizard
http://wiki.wxpython.org/wxWizard que j'ai repris, les classes pages
sont instanciées à la création du wizard et je ne sait donc pas comment
passer des paramètres en faisant "suivant" et "précédent"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jean-michel bain-cornu
Bonjour,
Est-ce que quelqu'un a une idée comment passer des paramètres entre les pages d'un wizard ? Dans l'exemple de wizard http://wiki.wxpython.org/wxWizard que j'ai repris, les classes pages sont instanciées à la création du wizard et je ne sait donc pas comment passer des paramètres en faisant "suivant" et "précédent"
Tu as un événement wiz.EVT_WIZARD_PAGE_CHANGING qui te préviens du changement de page. Tu connais le n° de page avec evt.GetPage(), ce qui te permet de savoir la page où tu es. Après, c'est le système habituel : tu te gardes des paramètres dans ton objet principal que tu fais évoluer (ou pas) d'une page à l'autre. Normalement, tu connais les objets métier qui sont dans les pages, car c'est toi qui les a mis. Si tu veux t'opposer au changement de page, tu utilises evt.Veto(). De plus, je crois me souvenir que l'exemple de la démo est assez complet. J'espère que ça réponds à ta question, ce qui n'est pas sûr, car l'idée de 'passer des paramètres entre les pages' ne me semble pas vraiment appropriée pour ce que j'imagine que tu veux faire.
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer les textes des boutons standards avec le code suivant : def OnWizPageChanged(self, evt): texts= ('&Next >','&Cancel','< &Back','&Finish') for o in self.wizard.GetChildren(): if 'Button' in str(type(o)): text= o.GetLabel() if text in texts: o.SetLabel('nouveau label...')
A+ jm
Bonjour,
Est-ce que quelqu'un a une idée comment passer des paramètres entre les
pages d'un wizard ? Dans l'exemple de wizard
http://wiki.wxpython.org/wxWizard que j'ai repris, les classes pages
sont instanciées à la création du wizard et je ne sait donc pas comment
passer des paramètres en faisant "suivant" et "précédent"
Tu as un événement wiz.EVT_WIZARD_PAGE_CHANGING qui te préviens du
changement de page.
Tu connais le n° de page avec evt.GetPage(), ce qui te permet de savoir
la page où tu es. Après, c'est le système habituel : tu te gardes des
paramètres dans ton objet principal que tu fais évoluer (ou pas) d'une
page à l'autre. Normalement, tu connais les objets métier qui sont dans
les pages, car c'est toi qui les a mis.
Si tu veux t'opposer au changement de page, tu utilises evt.Veto().
De plus, je crois me souvenir que l'exemple de la démo est assez complet.
J'espère que ça réponds à ta question, ce qui n'est pas sûr, car l'idée
de 'passer des paramètres entre les pages' ne me semble pas vraiment
appropriée pour ce que j'imagine que tu veux faire.
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer
les textes des boutons standards avec le code suivant :
def OnWizPageChanged(self, evt):
texts= ('&Next >','&Cancel','< &Back','&Finish')
for o in self.wizard.GetChildren():
if 'Button' in str(type(o)):
text= o.GetLabel()
if text in texts:
o.SetLabel('nouveau label...')
Est-ce que quelqu'un a une idée comment passer des paramètres entre les pages d'un wizard ? Dans l'exemple de wizard http://wiki.wxpython.org/wxWizard que j'ai repris, les classes pages sont instanciées à la création du wizard et je ne sait donc pas comment passer des paramètres en faisant "suivant" et "précédent"
Tu as un événement wiz.EVT_WIZARD_PAGE_CHANGING qui te préviens du changement de page. Tu connais le n° de page avec evt.GetPage(), ce qui te permet de savoir la page où tu es. Après, c'est le système habituel : tu te gardes des paramètres dans ton objet principal que tu fais évoluer (ou pas) d'une page à l'autre. Normalement, tu connais les objets métier qui sont dans les pages, car c'est toi qui les a mis. Si tu veux t'opposer au changement de page, tu utilises evt.Veto(). De plus, je crois me souvenir que l'exemple de la démo est assez complet. J'espère que ça réponds à ta question, ce qui n'est pas sûr, car l'idée de 'passer des paramètres entre les pages' ne me semble pas vraiment appropriée pour ce que j'imagine que tu veux faire.
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer les textes des boutons standards avec le code suivant : def OnWizPageChanged(self, evt): texts= ('&Next >','&Cancel','< &Back','&Finish') for o in self.wizard.GetChildren(): if 'Button' in str(type(o)): text= o.GetLabel() if text in texts: o.SetLabel('nouveau label...')
A+ jm
BH
Bonjour,
Est-ce que quelqu'un a une idée comment passer des paramètres entre les pages d'un wizard ? Dans l'exemple de wizard http://wiki.wxpython.org/wxWizard que j'ai repris, les classes pages sont instanciées à la création du wizard et je ne sait donc pas comment passer des paramètres en faisant "suivant" et "précédent"
Tu as un événement wiz.EVT_WIZARD_PAGE_CHANGING qui te préviens du changement de page. Tu connais le n° de page avec evt.GetPage(), ce qui te permet de savoir la page où tu es. Après, c'est le système habituel : tu te gardes des paramètres dans ton objet principal que tu fais évoluer (ou pas) d'une page à l'autre. Normalement, tu connais les objets métier qui sont dans les pages, car c'est toi qui les a mis. Si tu veux t'opposer au changement de page, tu utilises evt.Veto(). De plus, je crois me souvenir que l'exemple de la démo est assez complet. J'espère que ça réponds à ta question, ce qui n'est pas sûr, car l'idée de 'passer des paramètres entre les pages' ne me semble pas vraiment appropriée pour ce que j'imagine que tu veux faire.
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer les textes des boutons standards avec le code suivant : def OnWizPageChanged(self, evt): texts= ('&Next >','&Cancel','< &Back','&Finish') for o in self.wizard.GetChildren(): if 'Button' in str(type(o)): text= o.GetLabel() if text in texts: o.SetLabel('nouveau label...')
A+ jm
Merci beaucoup, cela m'a éclaircis les idées. Je vais faire quelques esssais.
A+
Bertrand
Bonjour,
Est-ce que quelqu'un a une idée comment passer des paramètres entre
les pages d'un wizard ? Dans l'exemple de wizard
http://wiki.wxpython.org/wxWizard que j'ai repris, les classes pages
sont instanciées à la création du wizard et je ne sait donc pas
comment passer des paramètres en faisant "suivant" et "précédent"
Tu as un événement wiz.EVT_WIZARD_PAGE_CHANGING qui te préviens du
changement de page.
Tu connais le n° de page avec evt.GetPage(), ce qui te permet de savoir
la page où tu es. Après, c'est le système habituel : tu te gardes des
paramètres dans ton objet principal que tu fais évoluer (ou pas) d'une
page à l'autre. Normalement, tu connais les objets métier qui sont dans
les pages, car c'est toi qui les a mis.
Si tu veux t'opposer au changement de page, tu utilises evt.Veto().
De plus, je crois me souvenir que l'exemple de la démo est assez complet.
J'espère que ça réponds à ta question, ce qui n'est pas sûr, car l'idée
de 'passer des paramètres entre les pages' ne me semble pas vraiment
appropriée pour ce que j'imagine que tu veux faire.
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer
les textes des boutons standards avec le code suivant :
def OnWizPageChanged(self, evt):
texts= ('&Next >','&Cancel','< &Back','&Finish')
for o in self.wizard.GetChildren():
if 'Button' in str(type(o)):
text= o.GetLabel()
if text in texts:
o.SetLabel('nouveau label...')
A+
jm
Merci beaucoup, cela m'a éclaircis les idées. Je vais faire quelques
esssais.
Est-ce que quelqu'un a une idée comment passer des paramètres entre les pages d'un wizard ? Dans l'exemple de wizard http://wiki.wxpython.org/wxWizard que j'ai repris, les classes pages sont instanciées à la création du wizard et je ne sait donc pas comment passer des paramètres en faisant "suivant" et "précédent"
Tu as un événement wiz.EVT_WIZARD_PAGE_CHANGING qui te préviens du changement de page. Tu connais le n° de page avec evt.GetPage(), ce qui te permet de savoir la page où tu es. Après, c'est le système habituel : tu te gardes des paramètres dans ton objet principal que tu fais évoluer (ou pas) d'une page à l'autre. Normalement, tu connais les objets métier qui sont dans les pages, car c'est toi qui les a mis. Si tu veux t'opposer au changement de page, tu utilises evt.Veto(). De plus, je crois me souvenir que l'exemple de la démo est assez complet. J'espère que ça réponds à ta question, ce qui n'est pas sûr, car l'idée de 'passer des paramètres entre les pages' ne me semble pas vraiment appropriée pour ce que j'imagine que tu veux faire.
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer les textes des boutons standards avec le code suivant : def OnWizPageChanged(self, evt): texts= ('&Next >','&Cancel','< &Back','&Finish') for o in self.wizard.GetChildren(): if 'Button' in str(type(o)): text= o.GetLabel() if text in texts: o.SetLabel('nouveau label...')
A+ jm
Merci beaucoup, cela m'a éclaircis les idées. Je vais faire quelques esssais.
A+
Bertrand
BH
Bonjour,
Est-ce que quelqu'un a une idée comment passer des paramètres entre les pages d'un wizard ? Dans l'exemple de wizard http://wiki.wxpython.org/wxWizard que j'ai repris, les classes pages sont instanciées à la création du wizard et je ne sait donc pas comment passer des paramètres en faisant "suivant" et "précédent"
Tu as un événement wiz.EVT_WIZARD_PAGE_CHANGING qui te préviens du changement de page. Tu connais le n° de page avec evt.GetPage(), ce qui te permet de savoir la page où tu es. Après, c'est le système habituel : tu te gardes des paramètres dans ton objet principal que tu fais évoluer (ou pas) d'une page à l'autre. Normalement, tu connais les objets métier qui sont dans les pages, car c'est toi qui les a mis. Si tu veux t'opposer au changement de page, tu utilises evt.Veto(). De plus, je crois me souvenir que l'exemple de la démo est assez complet. J'espère que ça réponds à ta question, ce qui n'est pas sûr, car l'idée de 'passer des paramètres entre les pages' ne me semble pas vraiment appropriée pour ce que j'imagine que tu veux faire.
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer les textes des boutons standards avec le code suivant : def OnWizPageChanged(self, evt): texts= ('&Next >','&Cancel','< &Back','&Finish') for o in self.wizard.GetChildren(): if 'Button' in str(type(o)): text= o.GetLabel() if text in texts: o.SetLabel('nouveau label...')
A+ jm En fait j'avais déplacé les gestionnaires d'événements à un endroit où
ils n'étaient jamais appelés. Maintenant ça marche. C'est effectivement mon objet principal qui gère le passage de paramètres. Mes pages ne font que les faire évoluer.
Merci encore pour tout
Bertrand
Bonjour,
Est-ce que quelqu'un a une idée comment passer des paramètres entre
les pages d'un wizard ? Dans l'exemple de wizard
http://wiki.wxpython.org/wxWizard que j'ai repris, les classes pages
sont instanciées à la création du wizard et je ne sait donc pas
comment passer des paramètres en faisant "suivant" et "précédent"
Tu as un événement wiz.EVT_WIZARD_PAGE_CHANGING qui te préviens du
changement de page.
Tu connais le n° de page avec evt.GetPage(), ce qui te permet de savoir
la page où tu es. Après, c'est le système habituel : tu te gardes des
paramètres dans ton objet principal que tu fais évoluer (ou pas) d'une
page à l'autre. Normalement, tu connais les objets métier qui sont dans
les pages, car c'est toi qui les a mis.
Si tu veux t'opposer au changement de page, tu utilises evt.Veto().
De plus, je crois me souvenir que l'exemple de la démo est assez complet.
J'espère que ça réponds à ta question, ce qui n'est pas sûr, car l'idée
de 'passer des paramètres entre les pages' ne me semble pas vraiment
appropriée pour ce que j'imagine que tu veux faire.
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer
les textes des boutons standards avec le code suivant :
def OnWizPageChanged(self, evt):
texts= ('&Next >','&Cancel','< &Back','&Finish')
for o in self.wizard.GetChildren():
if 'Button' in str(type(o)):
text= o.GetLabel()
if text in texts:
o.SetLabel('nouveau label...')
A+
jm
En fait j'avais déplacé les gestionnaires d'événements à un endroit où
ils n'étaient jamais appelés. Maintenant ça marche. C'est effectivement
mon objet principal qui gère le passage de paramètres. Mes pages ne font
que les faire évoluer.
Est-ce que quelqu'un a une idée comment passer des paramètres entre les pages d'un wizard ? Dans l'exemple de wizard http://wiki.wxpython.org/wxWizard que j'ai repris, les classes pages sont instanciées à la création du wizard et je ne sait donc pas comment passer des paramètres en faisant "suivant" et "précédent"
Tu as un événement wiz.EVT_WIZARD_PAGE_CHANGING qui te préviens du changement de page. Tu connais le n° de page avec evt.GetPage(), ce qui te permet de savoir la page où tu es. Après, c'est le système habituel : tu te gardes des paramètres dans ton objet principal que tu fais évoluer (ou pas) d'une page à l'autre. Normalement, tu connais les objets métier qui sont dans les pages, car c'est toi qui les a mis. Si tu veux t'opposer au changement de page, tu utilises evt.Veto(). De plus, je crois me souvenir que l'exemple de la démo est assez complet. J'espère que ça réponds à ta question, ce qui n'est pas sûr, car l'idée de 'passer des paramètres entre les pages' ne me semble pas vraiment appropriée pour ce que j'imagine que tu veux faire.
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer les textes des boutons standards avec le code suivant : def OnWizPageChanged(self, evt): texts= ('&Next >','&Cancel','< &Back','&Finish') for o in self.wizard.GetChildren(): if 'Button' in str(type(o)): text= o.GetLabel() if text in texts: o.SetLabel('nouveau label...')
A+ jm En fait j'avais déplacé les gestionnaires d'événements à un endroit où
ils n'étaient jamais appelés. Maintenant ça marche. C'est effectivement mon objet principal qui gère le passage de paramètres. Mes pages ne font que les faire évoluer.
Merci encore pour tout
Bertrand
Amaury Forgeot d'Arc
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer les textes des boutons standards avec le code suivant : def OnWizPageChanged(self, evt): texts= ('&Next >','&Cancel','< &Back','&Finish') for o in self.wizard.GetChildren(): if 'Button' in str(type(o)): text= o.GetLabel() if text in texts: o.SetLabel('nouveau label...')
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer
les textes des boutons standards avec le code suivant :
def OnWizPageChanged(self, evt):
texts= ('&Next >','&Cancel','< &Back','&Finish')
for o in self.wizard.GetChildren():
if 'Button' in str(type(o)):
text= o.GetLabel()
if text in texts:
o.SetLabel('nouveau label...')
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer les textes des boutons standards avec le code suivant : def OnWizPageChanged(self, evt): texts= ('&Next >','&Cancel','< &Back','&Finish') for o in self.wizard.GetChildren(): if 'Button' in str(type(o)): text= o.GetLabel() if text in texts: o.SetLabel('nouveau label...')
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer les textes des boutons standards avec le code suivant : def OnWizPageChanged(self, evt): texts= ('&Next >','&Cancel','< &Back','&Finish') for o in self.wizard.GetChildren(): if 'Button' in str(type(o)): text= o.GetLabel() if text in texts: o.SetLabel('nouveau label...')
Effectivement, et de beaucoup. Il y avait eu un échange à ce sujet sur la ml wxpython, mais je n'avais pas corrigé dans mon script...
Bonjour,
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer
les textes des boutons standards avec le code suivant :
def OnWizPageChanged(self, evt):
texts= ('&Next >','&Cancel','< &Back','&Finish')
for o in self.wizard.GetChildren():
if 'Button' in str(type(o)):
text= o.GetLabel()
if text in texts:
o.SetLabel('nouveau label...')
Une astuce supplémentaire (c'est mon jour de bonté) : tu peux changer les textes des boutons standards avec le code suivant : def OnWizPageChanged(self, evt): texts= ('&Next >','&Cancel','< &Back','&Finish') for o in self.wizard.GetChildren(): if 'Button' in str(type(o)): text= o.GetLabel() if text in texts: o.SetLabel('nouveau label...')
En fait, il faut utiliser self.wizard.FindWindowById (en tout cas dans la version que j'utilise, la 2.6.1, qui n'est certes pas la dernière)
Argh! Ce que j'ai copié est directement adapté du C++. wxPython n'aime pas les fonctions surchagées, et les renomme systématiquement. J'aurais dû vérifier avant de poster...
En fait, il faut utiliser self.wizard.FindWindowById (en tout cas dans
la version que j'utilise, la 2.6.1, qui n'est certes pas la dernière)
Argh! Ce que j'ai copié est directement adapté du C++.
wxPython n'aime pas les fonctions surchagées, et les renomme
systématiquement.
J'aurais dû vérifier avant de poster...
En fait, il faut utiliser self.wizard.FindWindowById (en tout cas dans la version que j'utilise, la 2.6.1, qui n'est certes pas la dernière)
Argh! Ce que j'ai copié est directement adapté du C++. wxPython n'aime pas les fonctions surchagées, et les renomme systématiquement. J'aurais dû vérifier avant de poster...