我已经在内部接管了一个Perl TK项目。我想知道如何设置使用BrowseEntry
库的组合框的默认值。
以下是组合框的构建方式。
$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');
invoice_countries
包含两个值:('Canada', 'United States')
。
我想知道如何在不改变值的顺序的情况下将美国设为默认值(我们将添加更多国家/地区)。
答案 0 :(得分:3)
您可以使用BrowseEntry
上的variable
选项:
#!/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();
答案 1 :(得分:0)
它应该反映$invoice_per_country
中的任何值,只需在打包之前将其设置为'美国'(或者甚至之后,PerlTk将跟随变量)。
答案 2 :(得分:0)
您可以使用browserentry的configure方法 $ sel-> configure(-variable =>);