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 :

défilement automatique de scrollbar


Sujet :

Interfaces Graphiques Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 46
    Par défaut défilement automatique de scrollbar
    Bonjour,

    j'aimerais que la scrollbar défile automatiquement au fur et à mesure du texte qui s'affiche (afin que l'on ne doive pas la descendre pour voir les dernières lignes qui viennent de s'afficher)
    J'ai trouvé ce script sur le net (je ne sais plus où) qui affiche une centaine de ligne mais où la scroll ne défile pas.
    Je n'arrive pas à le modifer pour faire ce que je veux.
    Si quelqu'un a une idée?
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    use Tk;
     
    my $fenetre_principale = MainWindow->new( -title => 'Test' );
    my $widget_texte = $fenetre_principale->Scrolled('Text',
      -scrollbars => 'osoe',
      -background => '#F3EFFF',
    )->pack( );
    for (1..100) {
      $widget_texte->insert('end', "$_ : Ligne $_ : exemple\n");
    }
     
    MainLoop;

  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

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 46
    Par défaut
    merci, je me bornais a chercher un sujet "défilement scrollbar" alors que la réponse était sous "voir une ligne d'un widget".

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 46
    Par défaut
    en fait non, ça ne va pas avec ce que je veux faire, j'ai mis un mauvais exemple.
    En fait, dans mon code, il faudrait que la barre défile suite à l'insertion d'une longue listbox et d'un bouton. Voici un exemple simplifié:
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    use Tk;
    use Tk::Pane;
     
    ####  Mainwindow  #########
    my $mw = MainWindow->new(-title => 'liste personne');
    $mw->minsize (400,400);
     
    #scrollbar
    my $scroll_bar = $mw->Scrolled('Pane',
      -scrollbars => 'e',
    )->pack(-expand => 1, -fill => 'both');
     
    my $system = $scroll_bar->Label(
      -text => "Qui choisis-tu?",
      -relief     => 'raised',
      -background => 'white'
    )-> pack;
     
     
    my $list = $scroll_bar->Listbox(-height=> '25')->pack;
    my $bouton_OK = $scroll_bar->Button(-text=> 'OK')->pack;
    $list->insert('end','lucie','abdel','francois','bernard','camille','emilie','geraldine','agathe','karim','manu','bruno','jean-michel','nico','vincent','delphine','jerome','serge','jeremie','sebastien','julien','alex','solange','colette','pan','chloé');
     
    MainLoop;
    Suite à la pression du bouton OK, d'autres longues listes apparaissent, etc...

    comme les widgets listbox et button ne sont pas des widgets textes, le see ne fonctionne pas et l'utilisateur devra donc chaque fois descendre la barre pour aller cliquer.
    Est ce que tu as une autre astuce?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 46
    Par défaut
    Sur ce site (http://www.ida.liu.se/~tompe/perltk/listbox.htm), ils stipulent que l'option "see" est dispo pour les listbox.
    Cependant, quand je rajoute dans le code du post précédent, rien ne se passe.
    Je n'arrive pas à trouver d'alternative.

  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
    Il faut éviter de regarder n'importe quel site parlant de la documentation officielle. Si tu veux en savoir plus sur un widget, regarde la doc CPAN du widget, exemple : Tk::Listbox.

    Sinon, donne nous déjà un exemple clair et surtout cohérent par rapport à ce que tu dis. Ton code ci-dessus a un bouton qui ne sert à rien. Difficile de tester tes dires .

    ta listbox doit être scrollée si tu veux voir les longues listes. Puis la méthode see doit être utilisée au moment du clic sur le bouton.

    Exemple :
    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
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    use Tk;
    use Tk::Pane;
     
    ####  Mainwindow  #########
    my $mw = MainWindow->new( -title => 'composition lignin chain' );
    $mw->minsize( 400, 400 );
     
    #scrollbar
    my $scroll_bar = $mw->Scrolled( 'Pane', -scrollbars => 'oe', )->pack( -expand => 1, -fill => 'both' );
     
    my $system = $scroll_bar->Label(
      -text       => "Qui choisis-tu?",
      -relief     => 'raised',
      -background => 'white'
    )->pack;
     
    my $list = $scroll_bar->Scrolled(
      'Listbox',
      -height     => '25',
      -scrollbars => 'ow',
    )->pack;
    my $bouton_OK = $scroll_bar->Button(
      -text    => 'OK',
      -command => [ \&insertion, $list ],
    )->pack;
     
    MainLoop;
     
    sub insertion {
      my $list = shift;
      $list->insert(
        'end',         'lucie',     'abdel',   'francois', 'bernard', 'camille',
        'emilie',      'geraldine', 'agathe',  'karim',    'manu',    'bruno',
        'jean-michel', 'nico',      'vincent', 'delphine', 'jerome',  'serge',
        'jeremie',     'sebastien', 'julien',  'alex',     'solange', 'colette',
        'pan',         'chloé'
      );
      $list->see('end');
      return;
    }

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

Discussions similaires

  1. "scrollbar" avec défilement automatique dans listbox
    Par nanettemontp dans le forum Windows
    Réponses: 4
    Dernier message: 15/10/2007, 10h44
  2. Défilement automatique d'un StringGrid
    Par ero-sennin dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/06/2006, 00h53
  3. Position du défilement de la scrollbar d'un select
    Par Eagle959 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/03/2006, 21h33
  4. [Stratégie] Défilement automatique de texte
    Par speedster dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 18/07/2005, 14h56
  5. [BCB5] Défilement automatique des scroll bars
    Par Christophe Brun dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/12/2004, 16h59

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