Thread Validate für text Widget ?
(3 answers)
Opened by Kalle at 2010-03-19 09:47
So...Problem gelöst. Hatte die Notwendigkeit von bindtags falsch eingeschätzt und demnach weggelassen (aus einem Stueck Code von 'Lamprecht' in de.comp.lang.perl.misc)
Auszug aus der Beschreibung: Quote So gehts ohne, daß bei CTRL-S ein Steuerzeichen in den Text übernommen wird und auch bei CTRL-f wird der Zeichenvorschub unterdrückt. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 #!/usr/local/bin/perl use strict; use warnings; use Tk; use Tk::TextUndo; my $mw=MainWindow->new(-title=>'CTRL-S Test'); # Scrolled weggemacht und schon gehts my $text = $mw->TextUndo(-width=>40, -height=>15)->pack; my $closebutton = $mw->Button(-text=>'Close', -command=>sub {$mw->destroy;})->pack(-fill=>'x'); $text->focus(); $text->bind('myValidate', '<KeyPress>', [\&text_validate,Ev('A')]); $text->bindtags(['myValidate',$text->bindtags]); MainLoop(); sub text_validate { my ($text,$A) = @_; if ($A eq chr(19)) { #CTRL-s gedrückt print "CTRL-s gedrueckt. speichern.\n"; save_me(); $text->break; } elsif ($A eq chr(6)) { print "CTRL-f gedrueckt. Zeige Find Popup.\n"; $text->FindPopUp; $text->break; } else { print "weiter\n"; } } sub save_me { print "saved\n"; } Warum ich auch noch 'Scrolled' rausnehmen musste, weiss ich allerdings noch nicht. Gruß Kalle |