Tk::Listbox "vergisst" bei Textauswahl in anderem Fenster

07/11/2012 - 20:04 von Tim Landscheidt | Report spam
Hallo,

in einigen Scripts nutze ich:

| $Listbox->bind ('<<ListboxSelect>>',
| sub
| {
| $Button->configure ('-state' =>
| defined ($Listbox->curselection ()) ? 'normal' : 'disabled');
| });

um Buttons (nicht) freizugeben, wenn (mindestens) ein Ein-
trag ausgewàhlt ist. Das funktioniert bei manueller Aus- und
Abwahl auch einwandfrei.

Wenn ich allerdings in einem anderen Fenster (KDE) einen
Text selektiere, wird die Auswahl abgewàhlt, ohne dass der
Callback ausgeführt wird.

Gibt es da ein anderes Ereignis, das ich binden sollte,
oder ist das ein Fehler in Tk::Listbox?

Tim
 

Lesen sie die antworten

#1 K. Wittrock
15/11/2012 - 16:23 | Warnen spam
Tim Landscheidt schrieb :
Hallo,

in einigen Scripts nutze ich:

$Listbox->bind ('<<ListboxSelect>>',
sub
{
$Button->configure ('-state' =>
defined ($Listbox->curselection ()) ? 'normal' :
'disabled'); });



um Buttons (nicht) freizugeben, wenn (mindestens) ein Ein-
trag ausgewàhlt ist. Das funktioniert bei manueller Aus- und
Abwahl auch einwandfrei.

Wenn ich allerdings in einem anderen Fenster (KDE) einen
Text selektiere, wird die Auswahl abgewàhlt, ohne dass der
Callback ausgeführt wird.

Gibt es da ein anderes Ereignis, das ich binden sollte,
oder ist das ein Fehler in Tk::Listbox?



Bei Win XP geht's richtig, die Selektion in der Listbox bleibt
erhalten, wenn ich ein Fremdfenster aktiviere (ActivePerl v5.14.2, Tk
804.029). Mein Linux ist leider kaputt gegangen, sodass ich nur
spekulieren kann.

Wenn das Fenster der Listbox den Fokus an ein Fremdfenster verliert,
sollte das keinen Einfluss auf die Selektion in der Listbox haben. Dazu
passt deine Bemerkung
... ohne dass der Callback ausgeführt wird.



Denkbar wàre, dass die Selektion noch besteht, aber nicht angezeigt
wird, solange das Fenster inaktiv ist. Versuche mal, das Fenster zu
aktivieren, ohne dass die Selektion beeinflusst wird. Mit einem Klick
in die Titelleiste könnte das gelingen.

Gruß

Klaus

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

Ähnliche fragen