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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| #!/usr/bin/perl
use warnings;
use strict;
use Tk;
use utf8;
#Création de la fenêtre principale
my $fen = MainWindow->new();
#Définition de la taille min de la fenêtre
$fen->minsize( '600', '600' );
#Définition du title de la fenêtre
$fen->title("Interface Tk avec Perl");
#Création de la barre de menu
my $barre_menu = $fen->Frame( -relief => 'groove', -borderwidth => 2 );
#Création de la barre du menu général
my $menu_gen = $barre_menu->Menubutton(
-text => 'Application',
-font => '{Garamond} 10',
-tearoff => 0,
-menuitems => [
[ 'command' => 'Quitter',
-font => '{Garamond} 10',
-command => \&Quitter
]
]
);
#Affichage du menu général à gauche
$menu_gen->pack( -side => 'left' );
#Affichage de la barre de menu en haut de la fenêtre
$barre_menu->pack( -side => 'top', -anchor => 'n', -fill => 'x' );
my $widget_texte = $fen->Text()->pack(qw/ -fill both -expand 1/);
#Ajout de notre bouton à la fenêtre
$fen->Button(
-text => 'Sélectionner un fichier', #Texte du bouton
-font => '{Garamond} 10', #Nom et taille de la police utilisée
-command => [ \&SelectFile, $widget_texte ], #Action qui modifie notre variable
)->pack(
-pady => '5', #Marge externe du bouton
-padx => '5',
-ipady => '5', #Marge interne du bouton
-ipadx => '5'
);
#Ajout du nb de fichier a ouvrir
my $filenameOpen = 'Nb de Fichier sélectionné : 0';
$fen->Label(
-relief => 'groove',
-textvariable => \$filenameOpen,
-font => '{Garamond} 10'
)->pack(
-fill => 'both',
-padx => '5',
-pady => '5'
);
#Création de notre barre de statut à l'aide d'un Label
my $barre_statut = $fen->Label( -relief => 'groove', -text => "Xxxx relevés", -font => '{Garamond} 10' );
#On l'ajoute en bas de la fenêtre afin de lui donner l'effet barre de statut
$barre_statut->pack( -side => 'bottom', -fill => 'both' );
MainLoop;
#Définition fonction de fermeture de l'application
sub Quitter {
exit(0);
}
#Fonction de sélection d'un fichier
sub SelectFile {
my ($widget_texte) = @_;
# Get the file (.csv files)
my @types = ( [ "Data Files", '.csv', 'TEXT' ], [ "All Files", "*" ] );
my @TabFiles = $fen->getOpenFile(
-initialdir => $ENV{AppliConfig}->{DefaultDirectory},
-multiple => 1,
-filetypes => \@types,
);
my $filenb = scalar(@TabFiles);
return if ( $filenb == 0 );
$filenameOpen = 'Nb de Fichier(s) sélectionné(s) : ' . $filenb;
my $fichier_output = "/home/colibri/toto.txt";
open( OUTFILE, '>', $fichier_output ) or die("Impossible de créer le fichier $fichier_output\n");
foreach my $fichier (@TabFiles) {
$widget_texte->insert( 'end', "$fichier\n" );
print OUTFILE "$fichier\n";
}
close(OUTFILE);
return;
} |
Partager