You're on the right track here. The
-textvariable is getting assigned by Tk any time the user interacts with your Entry widget, but you just need to decide how and when you want to access that variable. If I understand correctly, you'd like to get at it when the user leaves the field rather than having the user click a button. In this case, you should use the
-validatecommand option, which can essentially act as the
-command option you were using on the button. This is similar to the binding approach that
graff mentions, but it will trigger any time the Entry widget loses focus, not just when the user hits enter. Give this a whirl:
#!c:/perl/bin/perl -w
use strict;
use Tk;
my $regex = '';
my $foo = '';
my $main=MainWindow->new();
$main->Entry(
-width => 20,
-textvariable => \$regex,
-validate => 'focusout',
-validatecommand => sub{ print "Regex: $regex\n" },
)->pack();
$main->Entry(
-width => 20,
-textvariable => \$foo,
-validate => 'focusout',
-validatecommand => sub{ print "Foo: $foo\n" },
)->pack();
MainLoop;
-- grummerX