Thread Tk-Spinbox - Überprüfung manuelle Eingabe (8 answers)
Opened by Kean at 2011-09-26 13:37

pktm
 2011-09-26 19:37
#152690 #152690
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo Kean,

CPAN:Tk::Spinbox hat einen eingebauten Mechanismus zum Prüfen, der ist glaube ich von CPAN:Tk::Entry geerbt (das Eingabefeld ist schließlich ein solches). Das kannst du nutzen. Anbei ein Beispiel. Es ist allerdings sehr restriktiv und quasi fast schon eine Garantie für Benutzer-Frust :)
Ich glaube schöner wäre es, die Nutzereingabe nicht zu ignorieren, sondern in irgend etwas umzuwandeln, was Sinn macht. Z.B. bei der Eingabe 12f oder 12,5 die Zahl 12.

Grüße, pktm

Code: (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
#perl

use strict;
use warnings;
use utf8;
use Tk;
use Tk::Spinbox;
use Data::Dumper qw/Dumper/;

my $mw = tkinit();

my $sb = $mw->Spinbox(
-text => 1,
-validate => 'all',
-validatecommand => sub{
my $input = shift;
print "Eingabe = '$input'\n";
if( $input !~ m/^\d+$/ || $input < 0 || $input > 23 ) {
return 0;
}
return 1;
},
-invalidcommand => sub{
print "Falsche Engabe, muss Ganzzahl zwischen 0 und 23 sein (24 gibt es nicht :-p)\n";
}
)->pack();

$mw->Button(
-text => 'exit',
-command => sub{
print "Inhalt der Spinbox: '" . $sb->get() . "'\n";
}
)->pack();

$mw->MainLoop();
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread Tk-Spinbox - Überprüfung manuelle Eingabe