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
|
# ================================================
# But: executer regulierement une action, comme donner l heure
# Argument: le widget dans lequel placer (mainwindow ou autre)
# Attention, j appelle le PACK, mais ca doit correspondre avec le widget parent
# Exemple d appel: $mw=MainWindow... UneCaseHorlogePack($mw)
# ================================================
# avec quelle frequence je met a jour
my $FREQUENCY = 1000 ; # millisecondes: 60000=1min
sub UneCaseHorlogePack {
my $parent = shift ;
unless ($parent->IsWidget) { die "Erreur: mauvais appel, ce n est pas un widget\n"; }
my $menubar = $parent->Frame(-relief => 'raised', -borderwidth => 2)-> pack();
# zone d affichage de l heure
# on peut avoir Label ou Button
my $horloge=$menubar->Button(
-font => "dtinfo" ,
-text => "mon horloge" ,
-height=>'1' ,
-background => "black",
-foreground => "white",
-width=>30,
-justify =>'center',
) -> pack();
# cette frame appelle regulierement une fonction
$menubar->repeat( $FREQUENCY, [\&UpdateTimeNow ,$horloge] );
}
# la fonction qui s execute regulierement
sub UpdateTimeNow {
my $horloge = shift ;
# attraper l heure machine
my $now= localtime(time) ;
# puis l afficher dans la zone prevue
$horloge->configure(-text => $now );
# remarque: il est possible de l afficher dans le bandeau fenetre de l application
# $mw->title($now)
# remarque: en general, je fais plein de truc ici, regulierement, pour des tableaux de bord
} |
Partager