gpt4 book ai didi

perl - 如何从 Perl/TK 中的子例程获取调用者小部件?

转载 作者:行者123 更新时间:2023-12-01 22:19:55 25 4
gpt4 key购买 nike

在perl Tk中,我想问一下如何在使用-command选项时获取调用小部件。

我有一个对话框小部件,它是由先前未知数量的条目动态创建的。有 Entry-widget,每个按钮旁边都有一个按钮,可以在其中浏览 Entry 的可能(有用)字符串。

因此,如果按下第二个条目旁边的按钮,结果应存储在第二个条目中,依此类推。

代码如下所示。

my $count = 0;
my @name = ();
my @val = ();
my @edit = ();
my @button = ();

my $fr = $wind->Frame->pack;

foreach ( @outputs ) {
$name[$count] = helper::trim($_);
$val[$count] = '';

$fr->Label(-text => $name[$count])->grid(-row => $count, -column => 0, -sticky => 'w');
$edit[$count] = $fr->Entry(-textvariable => \$val[$count], -width => 30)->grid(-row => $count, -column => 1);
$button[$count] = $fr->Button(-width => 20, -text => 'Select',
-command => sub { &select(\$val[$count], \$edit[$count]); }
)->grid(-row => $count, -column => 2);

$count++;
}

但是,由于在构建完整的对话框后调用 &select,$count 始终为最后一个值,并且我没有获得我按下的按钮的信息。行为

-command => sub { &select(\@val, \@edit, $count); } 

也不起作用。

是否有某种方法可以获取调用子例程的小部件(以便我可以在相应的按钮中以某种方式存储必要的信息)或在此类调用中使用实际值(此处为 $count )?

致以诚挚的问候。

最佳答案

回调内部:

my $caller = $Tk::widget;

关于perl - 如何从 Perl/TK 中的子例程获取调用者小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14510754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com