Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problem mit Perl/Tk

0 views
Skip to first unread message

K. Wittrock

unread,
Dec 16, 2009, 11:48:45 AM12/16/09
to
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, "\n";
$klickfield->Popup() if ($klickfield->state ne 'normal');
return;
}

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

K. Wittrock

unread,
Dec 18, 2009, 10:31:07 AM12/18/09
to

"K. Wittrock" <inv...@invalid.invalid> schrieb im Newsbeitrag
news:4b290f6b$0$7631$9b4e...@newsspool1.arcor-online.net...
> [.............]

> $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

0 new messages