http://www.perlmonks.org?node_id=1018919


in reply to Re: Entry widget with explicit submit button
in thread Entry widget with explicit submit button

Yes, I am using TK. I read Validation in Entry, but that gives you option of "focus" on entry box and "key". But what I need is a separate button for a user to validate it.

(For example, a user may play around with the text in Entry box, but he may not choose to conform to changes and might close the window. So, I want a submit button alongwith it. Only when it is pressed, I'll take the input.)
  • Comment on Re^2: Entry widget with explicit submit button

Replies are listed 'Best First'.
Re^3: Entry widget with explicit submit button
by choroba (Cardinal) on Feb 15, 2013 at 17:45 UTC
    Such a functionality does not exist. You have to create a normal Tk::Button and implement the logic yourself in its -command.
    لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
      okay, but I can't think of a logic because -textvariable of entry widget is changed on the go (as and when user types/changes something). So, how do I revert back to original data on a call from -command of button? (I guess that should have been my exact question, Sorry!)
        Why are you using a textvariable at all?
        use strict; use warnings; use 5.012; use Tk; my $entry_text; my $mw = MainWindow->new; my $entry = $mw->Entry( -text => 'Enter answer here', )->pack; $entry->focus; $entry->selectionRange(0, 'end'); sub my_validator { my $input = $entry->get(); if ($input eq 'hello') { $entry->delete(0, 'end'); $entry->insert(0, 'Try again!'); $entry->selectionRange(0, 'end'); $entry->icursor(0); } else { say "Thanks for the great input!"; $entry_text = $input; say $entry_text; } } $mw->Button( -text => 'Submit', -command => \&my_validator, )->pack; MainLoop;
        it simple, you keep track of the changes