use strict; use Tkx; Tkx::package_require("tile"); Tkx::package_require("style"); my $mw = Tkx::widget->new("."); my $text = "abc"; my $entry = $mw->new_ttk__entry(-width => 20, -textvariable => \$text); $entry->configure(-font => "helvetica 14 bold"); $entry->g_grid(-column => 0, -row => 0, -sticky => 'w'); # $entry->configure(-validate => 'all', -validatecommand => \&Entry); $entry->configure(-validate => 'all', -validatecommand => \&Entry); # $entry->configure(-validatecommand => [\&Entry, Tkx::Ev('%P'), $entry]); #$entry->configure(-validatecommand => [\&Entry, Tkx::Ev('%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W'), $entry]); $entry->configure(-validatecommand => [\&Entry, Tkx::Ev('%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W'), $entry]); Tkx::MainLoop(); sub Entry { my ($d, $i, $P, $s, $S, $v, $V, $W) = @_; print "action = '$d'\n"; print "index = '$i'\n"; print "new value = '$P'\n"; print "current value = '$s'\n"; print "insert string = '$S'\n"; print "validate option = '$v'\n"; print "validation trigger = '$V'\n"; print "widget name = '$W'\n"; return 1; }