Programmation.perl : Gtk2 : rafraichissement d'un champ Gtk2::Entry
Posté par Julien Vehent (Jabber id, page perso, ) le 17 juillet 2006
Bonjour a tous,
je programme actuellement une interface en Gtk2 ou j'utilise des champs de date pour lancer une exploitation de logs entre ces dates.
C'est très simple, j'ai deux champs $datedebut et $datefin qui sont du type Gtk2::Entry->new_with_max_length(10) et j'ai également un bouton qui appel la fonction "lancer"
dans cette fonction "lancer" je fais mes deux récupérations de valeurs :
Celà marche bien. Mais quand mon exploitation est terminée et que je veux en lancer une deuxième, je modifie mes valeurs de date et je clic sur "lancer". C'est à ce moment que j'ai une erreur :
Je ne vois pas pourquoi Gtk ne réinitialise pas ces valeurs et pourquoi il me renvoie un tel message dans la tronche....
Si quelqu'un a une idée, je suis preneur
je programme actuellement une interface en Gtk2 ou j'utilise des champs de date pour lancer une exploitation de logs entre ces dates.
C'est très simple, j'ai deux champs $datedebut et $datefin qui sont du type Gtk2::Entry->new_with_max_length(10) et j'ai également un bouton qui appel la fonction "lancer"
dans cette fonction "lancer" je fais mes deux récupérations de valeurs :
my $debut_exp = $datedebut->get_text();
my $fin_exp = $datefin->get_text();
Celà marche bien. Mais quand mon exploitation est terminée et que je veux en lancer une deuxième, je modifie mes valeurs de date et je clic sur "lancer". C'est à ce moment que j'ai une erreur :
*** unhandled exception in callback:
*** Can't call method "get_text" without a package or object reference at [CHEMIN VERS MON APPLICATION] line 755.
*** ignoring at [CHEMIN VERS MON APPLICATION] line 654.
[CHEMIN VERS MON APPLICATION]> Can't call method "get_text" without a package or object reference
Je ne vois pas pourquoi Gtk ne réinitialise pas ces valeurs et pourquoi il me renvoie un tel message dans la tronche....
Si quelqu'un a une idée, je suis preneur
> Lire le message (3 commentaires, moyenne: 1).
Vous avez demandé le commentaire #737620.



Gtk2 : rafraichissement d'un champ Gtk2::Entry
apparement, il trouve pas la fonction. Sans doute que la fonction n'existe pas ...
d'après la documentation : http://gtk2-perl.sourceforge.net/doc/pod/Gtk2/Entry.html#str(...) il n'y aurait pas besoin des "()" ;-)
[^]Re: Gtk2 : rafraichissement d'un champ Gtk2::Entry
oui effectivement, pas besoin des parenthèses mais ca ne change rien..
j'ai l'impression que quand je lui demande d'exécuter une deuxième fois ma fonction "lancer" il a perdu les objets $datedebut et $datefin....
mais je comprend pas pourquoi, ni comment le corriger :(
www.linuxwall.info
[^]Re: Gtk2 : rafraichissement d'un champ Gtk2::Entry
trouvé !
juste après la création du widget, je le stocke dans une table de hachage globale
$Widgets{datedebut} = $datedebut ;
et dans ma fonction lancer je le rapelle comme ca :
my $tmpwidget = $Widgets{datedebut};
my $valeur = $tmpwidget->get_text;
et c'est tout bon ;)
www.linuxwall.info