Tk::Entry und selectionRange

15/09/2010 - 23:42 von Josef Wolf | Report spam
Hallo,

Ich versuche ein Entry widget zu erstellen, das bei bestimmten Eingaben den
Inhalt markiert. Etwa so:

#!/usr/bin/perl

use Tk;
use strict;
use warnings;

my $main = new MainWindow;
my $entry = $main->Entry(-width=>4)->pack(-side=>"left");
$entry->bind ("<Return>", \&check_input);
$entry->focus;

MainLoop;

sub check_input {
my $input = $entry->get;

if ($input eq "a") {
$entry->delete(0,"end");
} else {
# hier soll der Inhalt des Entry selektiert werden.
$entry->selectionRange(0,"end");
}
}

Ich sehe auch, dass die Selektierung kurzzeitig blau erscheint. Aber
unmittelbar danach wird die Selektierung wieder aufgehoben.

Hat irgendjemand eine Idee, wieso die Selektierung wieder aufgehoben wird?
 

Lesen sie die antworten

#1 K. Wittrock
17/09/2010 - 19:39 | Warnen spam
Nach làngere Bedenkzeit hat Josef Wolf geschrieben :
Hallo,

Ich versuche ein Entry widget zu erstellen, das bei bestimmten Eingaben den
Inhalt markiert. Etwa so:

#!/usr/bin/perl

use Tk;
use strict;
use warnings;

my $main = new MainWindow;
my $entry = $main->Entry(-width=>4)->pack(-side=>"left");
$entry->bind ("<Return>", \&check_input);
$entry->focus;

MainLoop;

sub check_input {
my $input = $entry->get;

if ($input eq "a") {
$entry->delete(0,"end");
} else {
# hier soll der Inhalt des Entry selektiert werden.
$entry->selectionRange(0,"end");
}
}

Ich sehe auch, dass die Selektierung kurzzeitig blau erscheint. Aber
unmittelbar danach wird die Selektierung wieder aufgehoben.

Hat irgendjemand eine Idee, wieso die Selektierung wieder aufgehoben wird?



Das passiert nur unter Linux. IMHO ist das ein Bug. Unter Windows tut
das Programm das Gewünschte. Einen Workaround habe ich leider nicht
gefunden.

Gruß

Klaus

Meine Email-Adr. lautet
K<ohne_Punkt_und_Komma>Wittrock<Klammeraffe>web.de

Ähnliche fragen