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 :

widget dans un tableau


Sujet :

Interfaces Graphiques Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Par défaut widget dans un tableau
    bonjour,
    j'utile le module MListbox pour afficher une tableau de données qui peut contenir jusqu'à 1000 lignes. Je souhaite remplacer une colonne donc les valeurs sont 1 ou 0 par un widget à cocher (checkbutton ou autre) pour modifier cette valeur par un double clic de souris sur cette ligne.
    Est ce possible ? ou faut-il utiliser autre chose ? par exemple TableMatrix.
    Et si oui comment faire?

    Je précise que j'ai déjà mis en place une zone d'édition qui permet de modifier cette valeur et toutes les autres valeurs d'une ligne, mais la modif de cette valeur nécessite 3 clic (selection, modification, enregistrement)

    Merci pour votre réponse.

  2. #2
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Bonjour,

    Mon conseil sans hésiter se porte sur l'utilisation de TableMatrix pour plusieurs raisons citées ici.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Par défaut
    merci pour ta réponse.
    J'avais commencé à regarder tablematrix mais devant la complexité d'usage de ce module et le manque d'exemple, je me suis rabattu sur mlistbox qui m'apporte nativement certaines fonctions dont j'ai besoin (tri par colonnes).
    J'ai fait un passage chez notre ami google pour tablematrix mais je n'ai rien trouvé qui me mette sur la voie pour faire ce que je souhaite à savoir "remplacer une zone de tableau par un widget ou une image. Les tags me permettent de changer la couleur lorsqu'un champs à une valeur définie, les index me permettent d'actualiser un champ sans fenêtre d'édition. Mais je ne vois pas la logique qui me permette de déclarer ce widget dans une colonne.
    Peux-tu me donner les bases pour que je comprenne comment faire cette action ?
    Merci encore de t'intéresser à mon problème

  4. #4
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Il faut utiliser la méthode windowConfigure.

    Voici un exemple de programme :

    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
    #!/usr/bin/perl
    use strict;
    use warnings;
    use Tk;
    use Tk::BrowseEntry;
    use Tk::TableMatrix;
     
    my $top = MainWindow->new;
     
    my $arrayVar = {};
    foreach my $row ( 0 .. 20 ) {
      foreach my $col ( 0 .. 10 ) {
        $arrayVar->{"$row,$col"} = "r$row, c$col";
      }
    }
     
    my $t = $top->Scrolled(
      'TableMatrix',
      -rows          => 21,
      -cols          => 11,
      -width         => 6,
      -height        => 6,
      -titlerows     => 1,
      -titlecols     => 1,
      -variable      => $arrayVar,
      -selectmode    => 'extended',
      -resizeborders => 'both',
      -titlerows     => 1,
      -titlecols     => 1,
      -bg            => 'white',
    );
     
    $t->tagConfigure( 'active', -bg => 'red', -relief => 'sunken' );
    $t->tagConfigure( 'title', -bg => 'blue', -fg => 'black', -relief => 'sunken' );
     
    ################ Put in some embedded windows ################
    my $l = $top->Checkbutton( -text => 'CheckButton' );
    $t->windowConfigure( "3,3", -sticky => 's', -window => $l );
     
    my $c = $top->BrowseEntry( -label => "Month:" );
    $c->insert( "end", "January" );
    $c->insert( "end", "February" );
    $c->insert( "end", "March" );
    $c->insert( "end", "April" );
    $c->insert( "end", "May" );
    $c->insert( "end", "June" );
    $c->insert( "end", "July" );
    $c->insert( "end", "August" );
    $c->insert( "end", "September" );
    $c->insert( "end", "October" );
    $c->insert( "end", "November" );
    $c->insert( "end", "December" );
     
    $t->windowConfigure( "2,2", -sticky => 'ne', -window => $c );
     
    # Leave enough room for the windows
    $t->colWidth( 2, 20 );
    $t->colWidth( 3, 20 );
     
    $t->pack( -expand => 1, -fill => 'both' );
     
    MainLoop;
    Tu as des exemples de codes dans le module (mais c'est vrai que le lien est caché). Il faut que je trouve du temps pour mettre des exemples dans la FAQ.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Par défaut
    merci, c'est ce que je cherchais depuis un moment. Mais je n'ai pas pensé à alors voir dans le module, les exemples fournis.
    Je digère tout cela et je manquerai pas de revenir ....
    En tout cas merci pour ta disponibilité

  6. #6
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Si c'est ok, n'oubliez pas le tag résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. Décaler des valeurs dans un tableau
    Par sh2003 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2004, 16h01
  3. Réponses: 2
    Dernier message: 23/11/2003, 18h44
  4. Réponses: 4
    Dernier message: 10/10/2003, 18h04
  5. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21

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