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_countries2 つの値が含まれます ('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

値が含まれている場合はそれを反映する必要があります$invoice_per_country。パックする前に「UnitedStates」に設定してください(または、PerlTkが変数の後に続きます)。

于 2012-12-27T19:44:33.177 に答える
0

browserentry $sel->configure(-variable => ); の configure メソッドを使用できます。

于 2014-10-24T09:56:39.253 に答える