Instead of searching for the entry, you could explicitly attach a variable ($entry_1) to it at creation time:
use strict;
use warnings;
use Tk;
my $test1;
my $var = "55";
my $mw = MainWindow->new();
my $FrameOpt = $mw -> Frame;
my $exit_b = $mw->Button(-text => 'Exit',
-command => sub { exit })->pack;
my $entry_1;
$mw->Button(-text => "Toggle Textbox",
-command => sub {
#my ($entry) = grep { $_->class eq "Entry" } $FrameOpt->c
+hildren;
$entry_1-> configure(-state => $entry_1->cget('-state') e
+q "disabled" ? 'normal' : 'disabled');
})->pack;
sub GuiTextEntryLabelOnLeftCreate {
my ($frame, %x_args) = @_;
my $label;
my $text = $x_args{'-text'};
delete $x_args{'-text'};
$label = $frame
-> Label (
-text => $text,
-foreground => "black"
)
-> grid (
$entry_1 = $frame -> Entry (%x_args) ,
-sticky => 'w' ,
-pady => 2
);
$label;
}
$test1 = GuiTextEntryLabelOnLeftCreate
(
$FrameOpt ,
-text => "Test value" ,
-textvariable => \$var ,
-width => 6,
-state => "disabled",
-foreground => "gray",
);
$FrameOpt->pack;
MainLoop();
"These opinions are my own, though for a small fee they be yours too."
|