Problem mit Perl/Tk

16/12/2009 - 17:48 von K. Wittrock | Report spam
Hallo NG,

sorry, ich habe schon wieder ein Problem, bei dem ich nicht weiterkomme,
diesmal mit Perl/Tk.Im Mainwindow habe ich 4 x 4 Buttons. Dazu gibt es
ein Toplevel namens Klickfield mit einem Label. Das einzig Interessante
passiert in sub move_klickfield: Wenn der Mauscursor in den Bereich
eines Buttons eintritt, wird das Klickfield über diesen Button
positioniert. Funktioniert prima, aaaaber ...

In der Zeile mit dem Popup hat das Klickfield stets den State
'withdrawn'. Popup wird als nie ausgeführt, die Zeile ist de facto ein
Noop. Wenn ich sie aber totlege, wird das Klickfield nicht angezeigt.
Kann jemand einen Hinweis geben? Meinen Kode füge ich unten an.

Gruß

Klaus

use strict;
use warnings;
use Tk;
my $mw;
my @sudoku_fields;
my $klickfield;

{
$mw = MainWindow->new();
foreach my $i (0 .. 3) {
my $fram = $mw->Frame()->pack();
foreach my $j (0 .. 3) {
my $fieldID = $fram->Button(-text => 'a')->pack(-side =>
'left');
$fieldID->bind('<Enter>', \&move_klickfield);
}
}

my $fieldsize = 9;
$klickfield = $mw->Toplevel(-width => $fieldsize, -height =>
$fieldsize);
$klickfield->overrideredirect(1); # suppress window frame
$klickfield->Label(-background => 'green', -text => 'i')->pack();
$klickfield->withdraw; # make klickfield invisible
MainLoop();
}

sub move_klickfield {
my $fieldID = shift; # ID of button to be covered
$klickfield->withdraw; # make klickfield invisible
$klickfield->configure(-popover => $fieldID);
#print "state ", $klickfield->state, "";
$klickfield->Popup() if ($klickfield->state ne 'normal');
return;
}

Persönliche Antwort bitte nur an
K<ohne_Punkt_und_Komma>Wittrock<Klammeraffe>web.de
 

Lesen sie die antworten

#1 K. Wittrock
18/12/2009 - 16:31 | Warnen spam
"K. Wittrock" schrieb im Newsbeitrag
news:4b290f6b$0$7631$
[.]
$klickfield->withdraw; # make klickfield invisible
[.]
$klickfield->Popup() if ($klickfield->state ne 'normal');
[.]
In der Zeile mit dem Popup hat das Klickfield stets den State
'withdrawn'. Popup wird als nie ausgeführt, die Zeile ist de facto ein
Noop.



Mit diesem Mist hàtte ich euch wirklich nicht belàstigen sollen.

Gruß

Klaus

Persönliche Antwort bitte nur an
K<ohne_Punkt_und_Komma>Wittrock<Klammeraffe>web.de

Ähnliche fragen