2 votes

Perl TK BrowseEntry ComboBox option par défaut

J'ai repris un projet Perl TK en interne. Je me demande comment définir la valeur par défaut d'une boîte combobox qui utilise la fonction BrowseEntry bibliothèque.

Voici comment la boîte combobox est construite.

$tm->ComboBox(
                  -variable    => \$invoice_per_country,
                  -font        => $main::UserPref->{'ListFont'},
                  -background  => 'white',
                  -relief      => 'groove',
                  -width       => 40,
                  -takefocus   => 1,
                  -listwidth   => 60,
                  -listheight  => scalar @invoice_countries,
                  -forcematch  => '',
                  -options     => [ @invoice_countries ],
                  -buttontakefocus => 0,
                  -disabledforeground => 'black',
                  -disabledbackground => 'white'

                 )
                 ->pack(-side => 'left',
                        -anchor => 'nw');

En invoice_countries contient deux valeurs : ('Canada', 'United States') . Je me demandais comment faire pour que les États-Unis deviennent la valeur par défaut sans modifier l'ordre des valeurs (nous ajouterons d'autres pays).

3voto

stderr Points 337

Vous pouvez utiliser le variable option sur BrowseEntry :

#!/usr/bin/env perl

use strict;
use warnings;
use Tk;

my @items = ('Canada', 'United States');
my $mw = MainWindow->new;
$mw->geometry('300x300');
my $default = $items[1];

my $be = $mw->BrowseEntry(-label=> 'country', -variable=> \$default,)->place(-y=> 100);
my $lb = $be->Subwidget('slistbox');
$lb->insert('end', @items);

MainLoop();

0voto

lightyrs Points 101

Elle doit refléter la valeur qui figure dans $invoice_per_country il suffit de lui donner la valeur "United States" avant de l'empaqueter (ou même après, PerlTk suivra la variable).

0voto

rvkreddy Points 173

Vous pouvez utiliser la méthode de configuration de la navigabilité $sel->configure(-variable => ) ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X