Bonjour,
Voilà je me suis à Perl et je suis bluffé par ce langage qui me permet de coder de petite chose très rapidement tout en ayant la "syntaxe du C" et pour finir un peu le tout, je me suis dans Gtk2-Perl. Tout marche pour le mieux quand je désire pratiquer un peu la gestion des évenements. Je souhaite que lorsqu'on appui sur une touche dans la fenêtre active, la fonction de rappel fonctionne. Donc voici le code à titre d'essai :
Et voici ma sortie de console lorsque je teste en appuyant sur une touche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 #!/usr/bin/perl -w use strict; use Gtk2 "-init"; my $fenetre = Gtk2::Window->new("toplevel"); $fenetre->set_border_width(15); my $bouton = Gtk2::Button->new("Hello World"); $fenetre->add($bouton); $fenetre->signal_connect("destroy",\&destroy_fenetre); $fenetre->signal_connect("delete_event",\&destroy_fenetre); $fenetre->signal_connect("key_press_event",\&hello2); $bouton->signal_connect("clicked",\&hello); $bouton->show(); $fenetre->show(); Gtk2->main(); sub destroy_fenetre { Gtk2->main_quit(); return 0; } sub hello { print("Vous avez cliquez sur le bouton !!!\n"); } sub hello2 { my ($widget,$evenement) = @_; if((defined($evenement->type)) and ($evenement->type eq "key_press")) { print("Vous avez appuyé sur une touche !!!\n"); } }
Donc quand j'appuie, le message ne s'affiche pas et je ne parviens pas à corriger ce problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 garulfounix@gentoo ~/scripts $ ./hello.pl Vous avez cliquez sur le bouton !!!. Si vous trouvez n'hésitez pas.
Merci![]()
GarulfoUnix.
[EDIT] Problème résolu! Le problème était tout bête, il suffisait en faite de mettre un tiret au lieu d'un underscore dans à cette endroit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ($evenement->type eq "key-press"))
Partager