FAQ Perl/TkConsultez toutes les FAQ

Nombre d'auteurs : 3, nombre de questions : 86, dernière mise à jour : 24 mai 2013  Ajouter une question

 

Bienvenue sur la FAQ Perl/Tk. Cette FAQ a pour vocation de vous enseigner ou de vous faire revoir les notions de Perl/Tk. N'hésitez pas à utiliser le moteur de recherche.

Vous souhaitez participer à l'amélioration de cette FAQ, n'hésitez pas !! Commentez

Bonne lecture !


SommaireLiaisons d'évènements bind (souris, clavier...) (2)
précédent sommaire suivant
 

Code perl : Sélectionner tout
1
2
3
$widget->update; 
 my $x = $widget->pointerx(); 
 my $y = $widget->pointery();
ou

Code perl : Sélectionner tout
1
2
$widget->update; 
 my ($x, $y) = $widget->pointerxy();
Il est important de faire un update du widget, sinon vous obtiendrez les coordonnées (0,0).

Mis à jour le 9 décembre 2008 djibril

Vous devez utiliser l'option -cursor dans votre widget et spécifier le nom de curseur que vous souhaitez attribuer.

Code perl : Sélectionner tout
-cursor => "boat",

Voici un script qui vous liste tous les types de curseurs existants.

Code perl : Sélectionner tout
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
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/perl 
use warnings; 
use strict; 
use Tk;    
  
my $fenetre = new MainWindow( 
  -title      => 'curseur', 
  -background => 'white', 
);  
  
my $List = $fenetre->Scrolled('Listbox', 
    -scrollbars => "oe", 
)->pack(); 
  
# Affichage d'un bouton pour fermer la fenêtre 
my $bouton = $fenetre->Button ( 
    -text    => 'Détruire la fenêtre',  
-command => \&detruire_fenetre, 
)->pack(); 
  
# Listons tous les types de curseurs possibles 
my $fichier_curseurs; 
# Sous windows 
if ( $^O eq 'MSWin32' ) { 
   $fichier_curseurs = 'C:/Perl/site/lib/Tk/X11/cursorfont.h'; 
} 
elsif ( $^O eq "linux" ) { 
   $fichier_curseurs = '/usr/include/X11/cursorfont.h'; 
} 
  
open ( my $fh_curseur, $fichier_curseurs ) or die("Le fichier $fichier_curseurs n'existe pas"); 
  
while ( <$fh_curseur> ) { 
    if ( m{#define\sXC_(\w+)\s} ) { 
      next if $1 eq 'num_glyphs'; 
      $List->insert("end", $1); 
      $List->bind("<Button-1>", sub { 
        $fenetre->configure(  
        -cursor=>$List->get( 
        $List->curselection 
        ) 
        );  
        }  
      ) 
    }    
} 
close($fh_curseur); 
  
MainLoop;  
sub detruire_fenetre {  
  exit; 
  
  return;  
}
Voici une liste des curseurs sur mon PC Windows
X_cursor arrow based_arrow_down based_arrow_up boat
bogosity bottom_left_corner bottom_right_corner bottom_side bottom_tee
box_spiral center_ptr circle clock coffee_mug
cross cross_reverse crosshair diamond_cross dot
dotbox double_arrow draft_large draft_small draped_box
exchange fleur gobbler gumby hand1
hand2 heart icon iron_cross left_ptr
left_side left_tee leftbutton ll_angle lr_angle
man middlebutton mouse pencil pirate
plus question_arrow right_ptr right_side right_tee
rightbutton rtl_logo sailboat sb_down_arrow sb_h_double_arrow
sb_left_arrow sb_right_arrow sb_up_arrow sb_v_double_arrow shuttle
sizing spider spraycan star target
tcross top_left_arrow top_left_corner top_right_corner top_side
top_tee trek ul_angle umbrella ur_angle
watch        

Mis à jour le 10 décembre 2008 djibril

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2019 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.