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
# Gtk2 : rafraichissement d'un champ Gtk2::Entry
Posté par David BIGOT . Évalué à 1.
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
Posté par jve (site web personnel) . Évalué à 1.
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 :(
[^] # Re: Gtk2 : rafraichissement d'un champ Gtk2::Entry
Posté par jve (site web personnel) . Évalué à 1.
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 ;)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.