Incapable de passer une liste d'une classe à l'autre
3 réponses
billy_hammer76
Bonjour à tous,
J'éprouve de la difficulté à passer une liste d'une classe à l'autre
sans qu'elle ne s'efface. L'instruction 'print instance1.data' me
donne ce qui a été entré dans le wxTextCtrl. L'instruction 'print
instance2.__getitem__()' me donne une liste vide '[]'. J'imagine que
c'est parce qu'à chaque fois que je crée une nouvelle instance de la
classe Test1, la liste data est redéfinie et donc redevient vide.
Est-ce que quelqu'un peu m'expliquer la stratégie à employer pour
régler mon problème. Je débute en programmation et je suis à court
d'idées. Au bout du compte, ce que je désire accomplir c'est de
réinsérer l'information de ma liste dans le wxTextCtrl avec
l'instruction 'dlg.textTitle.SetValue()'. Ça doit pas être bien
compliqué mais mon cerveau n'est plus qu'une usine à frustration.
Voici ma stratégie qui ne fonctionne pas:
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
Amaury Forgeot d'Arc
Bonjour à tous,
J'éprouve de la difficulté à passer une liste d'une classe à l'autre sans qu'elle ne s'efface. L'instruction 'print instance1.data' me donne ce qui a été entré dans le wxTextCtrl. L'instruction 'print instance2.__getitem__()' me donne une liste vide '[]'. J'imagine que c'est parce qu'à chaque fois que je crée une nouvelle instance de la classe Test1, la liste data est redéfinie et donc redevient vide. Oui.
Est-ce que quelqu'un peu m'expliquer la stratégie à employer pour régler mon problème. Je débute en programmation et je suis à court d'idées. Au bout du compte, ce que je désire accomplir c'est de réinsérer l'information de ma liste dans le wxTextCtrl avec l'instruction 'dlg.textTitle.SetValue()'.
J'essaierais une solution plus simple, sans classe intermédiaire.. Tant que le wxDialog n'est pas détruit, on peut interroger ses données même quand il n'est pas en "ShowModal" !
class PageInfo(wxDialog): .... def OnButton1(self, event): self.data = self.textTitle.GetValue() self.Close()
Note: je n'ai pas les moyens de tester ici... Mais en tout cas j'aurais commencé par ce qui précède.
Bon courage !
Amaury.
Bonjour à tous,
J'éprouve de la difficulté à passer une liste d'une classe à l'autre
sans qu'elle ne s'efface. L'instruction 'print instance1.data' me
donne ce qui a été entré dans le wxTextCtrl. L'instruction 'print
instance2.__getitem__()' me donne une liste vide '[]'. J'imagine que
c'est parce qu'à chaque fois que je crée une nouvelle instance de la
classe Test1, la liste data est redéfinie et donc redevient vide.
Oui.
Est-ce que quelqu'un peu m'expliquer la stratégie à employer pour
régler mon problème. Je débute en programmation et je suis à court
d'idées. Au bout du compte, ce que je désire accomplir c'est de
réinsérer l'information de ma liste dans le wxTextCtrl avec
l'instruction 'dlg.textTitle.SetValue()'.
J'essaierais une solution plus simple, sans classe intermédiaire..
Tant que le wxDialog n'est pas détruit, on peut interroger ses
données même quand il n'est pas en "ShowModal" !
class PageInfo(wxDialog):
....
def OnButton1(self, event):
self.data = self.textTitle.GetValue()
self.Close()
J'éprouve de la difficulté à passer une liste d'une classe à l'autre sans qu'elle ne s'efface. L'instruction 'print instance1.data' me donne ce qui a été entré dans le wxTextCtrl. L'instruction 'print instance2.__getitem__()' me donne une liste vide '[]'. J'imagine que c'est parce qu'à chaque fois que je crée une nouvelle instance de la classe Test1, la liste data est redéfinie et donc redevient vide. Oui.
Est-ce que quelqu'un peu m'expliquer la stratégie à employer pour régler mon problème. Je débute en programmation et je suis à court d'idées. Au bout du compte, ce que je désire accomplir c'est de réinsérer l'information de ma liste dans le wxTextCtrl avec l'instruction 'dlg.textTitle.SetValue()'.
J'essaierais une solution plus simple, sans classe intermédiaire.. Tant que le wxDialog n'est pas détruit, on peut interroger ses données même quand il n'est pas en "ShowModal" !
class PageInfo(wxDialog): .... def OnButton1(self, event): self.data = self.textTitle.GetValue() self.Close()
Note: je n'ai pas les moyens de tester ici... Mais en tout cas j'aurais commencé par ce qui précède.
Bon courage !
Amaury.
billy_hammer76
Bonjour Amaury (et cie),
J'ai tenté le code suggéré et ça ne fonctionne pas. Je reçoit un message d'erreur lorsque je ferme le dialogue PageInfo sans appuyer sur OnButton1. Si j'appuie sur OnButton1, le message d'erreur n'apparaît pas et l'instruction 'print data2' n'imprime rien. Voici le message d'erreur:
Attribute Error: PageInfo instance as no attribute 'data' ... data2 = dlg.data
J'imagine que 'self.data' crée un attribut de la fonction OnButton1 et pas de PageInfo. Alors comment fait-on pour y accéder. On appelle la fonction? Si quelqu'un peut prendre le temps de m'expliquer, j'apprécierais. Merci.
olivier henley
class PageInfo(wxDialog): .... def OnButton1(self, event): self.data = self.textTitle.GetValue() self.Close()
class Screendt(wxFrame):
def OnMnuFileItems1Menu(self, event): dlg = wxDialog2.PageInfo(self) data2 = "" try: dlg.textTitle.SetValue(data2) dlg.ShowModal() data2 = dlg.data #Ça devrait pas aller avant 'SetValue(data2)'? print data2 finally: dlg.Destroy()
Bonjour Amaury (et cie),
J'ai tenté le code suggéré et ça ne fonctionne pas. Je reçoit un
message d'erreur lorsque je ferme le dialogue PageInfo sans appuyer
sur OnButton1. Si j'appuie sur OnButton1, le message d'erreur
n'apparaît pas et l'instruction 'print data2' n'imprime rien. Voici le
message d'erreur:
Attribute Error: PageInfo instance as no attribute 'data'
... data2 = dlg.data
J'imagine que 'self.data' crée un attribut de la fonction OnButton1 et
pas de PageInfo. Alors comment fait-on pour y accéder. On appelle la
fonction? Si quelqu'un peut prendre le temps de m'expliquer,
j'apprécierais. Merci.
olivier henley
class PageInfo(wxDialog):
....
def OnButton1(self, event):
self.data = self.textTitle.GetValue()
self.Close()
class Screendt(wxFrame):
def OnMnuFileItems1Menu(self, event):
dlg = wxDialog2.PageInfo(self)
data2 = ""
try:
dlg.textTitle.SetValue(data2)
dlg.ShowModal()
data2 = dlg.data #Ça devrait pas aller avant 'SetValue(data2)'?
print data2
finally:
dlg.Destroy()
J'ai tenté le code suggéré et ça ne fonctionne pas. Je reçoit un message d'erreur lorsque je ferme le dialogue PageInfo sans appuyer sur OnButton1. Si j'appuie sur OnButton1, le message d'erreur n'apparaît pas et l'instruction 'print data2' n'imprime rien. Voici le message d'erreur:
Attribute Error: PageInfo instance as no attribute 'data' ... data2 = dlg.data
J'imagine que 'self.data' crée un attribut de la fonction OnButton1 et pas de PageInfo. Alors comment fait-on pour y accéder. On appelle la fonction? Si quelqu'un peut prendre le temps de m'expliquer, j'apprécierais. Merci.
olivier henley
class PageInfo(wxDialog): .... def OnButton1(self, event): self.data = self.textTitle.GetValue() self.Close()
class Screendt(wxFrame):
def OnMnuFileItems1Menu(self, event): dlg = wxDialog2.PageInfo(self) data2 = "" try: dlg.textTitle.SetValue(data2) dlg.ShowModal() data2 = dlg.data #Ça devrait pas aller avant 'SetValue(data2)'? print data2 finally: dlg.Destroy()
Amaury Forgeot d'Arc
reBonjour,
Bonjour Amaury (et cie),
J'ai tenté le code suggéré et ça ne fonctionne pas. Je reçoit un message d'erreur lorsque je ferme le dialogue PageInfo sans appuyer sur OnButton1. Si j'appuie sur OnButton1, le message d'erreur n'apparaît pas et l'instruction 'print data2' n'imprime rien. Voici le message d'erreur:
Attribute Error: PageInfo instance as no attribute 'data' ... data2 = dlg.data
J'imagine que 'self.data' crée un attribut de la fonction OnButton1 et pas de PageInfo. Alors comment fait-on pour y accéder. On appelle la fonction? Si quelqu'un peut prendre le temps de m'expliquer, j'apprécierais. Merci.
olivier henley
OnButton1 crée bien l'attribut là où il faut (car le paramètre "self" désigne l'objet de la classe où est définie la fonction) mais elle ne le fait que si on appuie sur le bouton...
Il manque en effet une petite ligne dans mon code : celle qui initialise self.data dans la classe PageInfo dès le début, pour parer à toute éventualité !
Essaie d'ajouter l'instruction self.data = "" dans la fonction __init__ de ta classe PageInfo...
Amaury
reBonjour,
Bonjour Amaury (et cie),
J'ai tenté le code suggéré et ça ne fonctionne pas. Je reçoit un
message d'erreur lorsque je ferme le dialogue PageInfo sans appuyer
sur OnButton1. Si j'appuie sur OnButton1, le message d'erreur
n'apparaît pas et l'instruction 'print data2' n'imprime rien. Voici le
message d'erreur:
Attribute Error: PageInfo instance as no attribute 'data'
... data2 = dlg.data
J'imagine que 'self.data' crée un attribut de la fonction OnButton1 et
pas de PageInfo. Alors comment fait-on pour y accéder. On appelle la
fonction? Si quelqu'un peut prendre le temps de m'expliquer,
j'apprécierais. Merci.
olivier henley
OnButton1 crée bien l'attribut là où il faut (car le paramètre "self"
désigne l'objet de la classe où est définie la fonction) mais elle ne le
fait que si on appuie sur le bouton...
Il manque en effet une petite ligne dans mon code : celle qui initialise
self.data dans la classe PageInfo dès le début, pour parer à toute
éventualité !
Essaie d'ajouter l'instruction
self.data = ""
dans la fonction __init__ de ta classe PageInfo...
J'ai tenté le code suggéré et ça ne fonctionne pas. Je reçoit un message d'erreur lorsque je ferme le dialogue PageInfo sans appuyer sur OnButton1. Si j'appuie sur OnButton1, le message d'erreur n'apparaît pas et l'instruction 'print data2' n'imprime rien. Voici le message d'erreur:
Attribute Error: PageInfo instance as no attribute 'data' ... data2 = dlg.data
J'imagine que 'self.data' crée un attribut de la fonction OnButton1 et pas de PageInfo. Alors comment fait-on pour y accéder. On appelle la fonction? Si quelqu'un peut prendre le temps de m'expliquer, j'apprécierais. Merci.
olivier henley
OnButton1 crée bien l'attribut là où il faut (car le paramètre "self" désigne l'objet de la classe où est définie la fonction) mais elle ne le fait que si on appuie sur le bouton...
Il manque en effet une petite ligne dans mon code : celle qui initialise self.data dans la classe PageInfo dès le début, pour parer à toute éventualité !
Essaie d'ajouter l'instruction self.data = "" dans la fonction __init__ de ta classe PageInfo...