IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques Perl Discussion :

Tkx entry et sélection de fichier


Sujet :

Interfaces Graphiques Perl

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2011
    Messages : 12
    Points : 16
    Points
    16
    Par défaut Tkx entry et sélection de fichier
    bonjour,

    mon script doit permettre de choisir un fichier et de saisir
    1 / le numéro de colonne
    2 / le filtre à appliquer sur cette colonne.

    je ne comprends pas pourquoi
    1 / il m'est interdit de positionner la saisie (new_ttk__entry) avant la sélection de fichier (à cause du g_destroy ?)
    et surtout
    2 / après la sélection du fichier (Tkx::tk___getOpenFile), la saisie (new_ttk__entry) est impossible, les champs sont inaccessibles !

    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
    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
    #!/usr/bin/perl -w
    use warnings;
    use strict;
    use Data::Dumper;
    use Tkx;
     
    my ($lacolonne, @lefiltre);
    my $types = [	['CSV Files', 	 ['.csv']],
    				['Text Files', 	 ['.txt', '.text']],
    				['All Files',	  '*'],];
    my $fichier = Tkx::tk___getOpenFile(	-title => "Sélection du fichier à filtrer",
    										-filetypes => $types);
    unless (-f $fichier) {
    	print "Fichier '$fichier' non trouvé.\n";
    	exit 2;
    }
    unless (@lefiltre) {
    	my $parametre;
    	saisir_2valeurs(\$lacolonne, \$parametre);
    	@lefiltre = qw/$parametre/;
    }
    exit 3 unless ($#lefiltre);
     
    open IN, $fichier or die "Problème à l'ouverture de $fichier E/S: $!\n";
    while ( <IN> ) {
    # 	chomp $_;
    	my @enreg = split( /;/, $_ );
    	for my $filtrage (@lefiltre) {
    		if ($enreg[$lacolonne] =~ /$filtrage/) {
    			open OUT, ">> filtrer_fichier_$filtrage.txt" or die "filtrer_fichier_$filtrage.txt E/S: $!\n";
    			print OUT $_ ;
    			close OUT;
    		}
    	}
    }
    close IN;
     
    =head1 NAME
     
    filtre_fichierCSV.pl
     
    =head1 SYNOPSIS
     
    Interactive mode:
     
      perl filtre_fichierCSV.pl <numéro> <filtre>
     
    =head1 DESCRIPTION
     
    il s'agit de filtrer un fichier sur la colonne <numéro> avec le filtre <filtre>.
    le fichier sur lequel appliquer ce filtre est choisi par une fenêtre de sélection (Tkx).
    le fichier généré s'appelle 'filtrer_fichier.txt'
     
    =cut
     
    sub saisir_2valeurs {
    use Tkx;
     
    	my ($saisie1, $saisie2) = @_;
     
    	my $mw = Tkx::widget->new(".");
    	$mw->g_wm_title("Saisir le type");
    	my $frm = $mw->new_ttk__frame(-padding => "2 3 12 12");
    	$frm->g_grid(-column => 0, -row => 0, -sticky => "nwes");
     
    	my $e_colonn = $frm->new_ttk__entry(-width => 9, -textvariable => $saisie1);
    	$e_colonn->g_grid(-column => 2, -row => 1, -sticky => "we");
    	my $e_filtre = $frm->new_ttk__entry(-width => 9, -textvariable => $saisie2);
    	$e_filtre->g_grid(-column => 2, -row => 2, -sticky => "we");
    	my $cb = $frm->new_ttk__button(-text => "Valider la saisie", -command => sub { $mw->g_destroy; });
    	$cb->g_grid(-column => 3, -row => 3, -sticky => "w");
     
    	$frm->new_ttk__label(-text => "Le numéro de colonne du filtre :")->g_grid(-column => 1, -row => 1, -sticky => "e");
    	$frm->new_ttk__label(-text => "Le filtre à extraire      (qw) :")->g_grid(-column => 1, -row => 2, -sticky => "e");
     
    	foreach (Tkx::SplitList($frm->g_winfo_children)) {
    	    Tkx::grid_configure($_, -padx => 5, -pady => 5);
    	}
    	$e_colonn->g_focus;
    	$mw->g_bind("<Return>", sub { $mw->g_destroy; });
     
    	$mw->g_tkwait_window;
     
    	Tkx::MainLoop();
     
    	print "dans la fenetre $saisie1,$$saisie1; $saisie2,$$saisie2.\n";
     
    }
    toute aide serait la bienvenue
    merci d'avance
    x-lours

    PS
    j'ai déjà éssayé la combinaison Tkx::tk___chooseDirectory + une unique saisie dans new_ttk__entry.
    cela permet bien la saisie dans new_ttk__entry.
    je ne comprends pas la différence

    re PS
    je ne peux pas utiliser Tk, je suis restreint à Tkx.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2011
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    bonjour,

    il s'agissait d'une perte du focus sur la fenêtre comprenant les zones de saisies.

    en ajoutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $mw->g_wm_withdraw();
    $mw->g_wm_deiconify();
    avec cet artifice au début de la fonction elle récupère le focus.
    tout ce qui me fallait.

    je ne sais toujours pas où est passé le focus lors de la création de la fenêtre Tkx ...
    si quelqu'un a une piste pour le trouver/localiser sans cet ajout, je suis prenneur

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Tu n'as pas une méthode pour connaitre les widgets ayant le focus ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2011
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par djibril Voir le message
    Tu n'as pas une méthode pour connaitre les widgets ayant le focus ?
    je ne l'ai pas trouvé,
    surtout que je n'ai qu'un seul widget !
    il me faudrait un moyen de localiser le focus dans toutes les fenêtres ouvertes ou non et pas seulement dans les fenêtres Perl et là je manque de connaissance...
    il faudrait que je me penche sérieusement sur le TCL .

Discussions similaires

  1. Sélection des fichiers par date
    Par bramy dans le forum Linux
    Réponses: 1
    Dernier message: 06/12/2006, 19h10
  2. [VB.NET]Sélection de fichiers
    Par lecknaat dans le forum Windows Forms
    Réponses: 12
    Dernier message: 01/09/2006, 12h35
  3. Sélection de fichier - JFileChooser
    Par pellec dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 16/03/2006, 21h54
  4. [formulaire] sélection de fichiers
    Par Baadshah dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/12/2005, 10h39
  5. Besoin d'un conseil pour une sélection Access/fichier
    Par Oluha dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/03/2005, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo