2

我在内部接手了一个 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'). 我想知道如何在不切换值顺序的情况下将美国设为默认值(我们将添加更多国家/地区)。

4

3 回答 3

3

您可以使用以下variable选项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();
于 2012-12-21T14:35:38.287 回答
0

您可以使用浏览器入口的配置方法 $sel->configure(-variable => );

于 2014-10-24T09:56:39.253 回答
0

它应该反映 中的任何值$invoice_per_country,只需在打包之前将其设置为 'United States' (甚至之后,PerlTk 将跟随变量)。

于 2012-12-27T19:44:33.177 回答