Thread Tk::Error: not a Tk object (2 answers)
Opened by xiconfjs at 2006-10-03 17:13

xiconfjs
 2006-10-03 17:13
#45866 #45866
User since
2006-01-21
79 articles
BenutzerIn
[Homepage] [default_avatar]
Hi,

im Moment arbeite ich gerade ein bissel mit Tk. Und im moment habe ich ein Fenster mit einer HList drin, die sich im Sekunden-Takt aktualisiert. Nun wollte ich noch ein Menu dazu. Gesagt getan. Geht auch. Über einen Menupunkt lasse ich ein neues Fenster öffnen, in dem ein Eingabefeld und ein Button ist. Wenn man den Button drückt, dann wird der Inhalt aus dem Eingabefeld in eine Variable geschrieben, die in der HList benutzt wird. Beim 1. mal klappt es auch ganz gut, doch wenn ich das ein zweites Mal machen will, dann kommt ein komischer Fehler.

Fenster + HList + Menu
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
my $fenster = new MainWindow;
my $hl = $fenster->HList(-width => 50,)->pack();
my $style = $hl->ItemStyle('text',
-foreground => '#FF0000',
-selectforeground => '#FF0000'
);

my $toplevel = $fenster->toplevel;
my $menubar = $toplevel->Menu(-type => 'menubar');
$toplevel->configure(-menu => $menubar);
my $datei = $menubar->cascade(-label => '~Datei',
-tearoff => 0);
$datei->command(-label => 'Zeige', -command => sub{nickchange()});
$datei->command(-label => 'Quit', -command => [$fenster=>'destroy']);


HList:
Code: (dl )
1
2
3
4
5
6
$hl->repeat(1000, sub
{
print $variable;
}
);
MainLoop();


Menu-Sub:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
sub nickchange {
my $window2 = $fenster->Toplevel;
my $text = $window2->Label(-text => "Nickname eingeben")->pack();
my $entry = $window2->Entry()->pack();
my $button = $window2->Button(-text => 'Ok',-command => \&action)->pack();
sub action {
my $eingabe = $entry->get();
$window2->destroy();
$variable = $eingabe;
}
}


Und der Fehler:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Tk::Error: not a Tk object
Tk::die_with_trace at C:/Perl/lib/Tk.pm line 252
Tk::__ANON__ at ts_telnet_user_info.pl line 369
main::action at C:/Perl/lib/Tk.pm line 252
(eval) at C:/Perl/lib/Tk.pm line 252
Tk::__ANON__ at C:/Perl/lib/Tk/Button.pm line 111
Tk::Button::butUp at C:/Perl/lib/Tk.pm line 411
(eval) at C:/Perl/lib/Tk.pm line 411
Tk::MainLoop at ts_telnet_user_info.pl line 315
Tk callback for .toplevel.button
Tk::__ANON__ at C:/Perl/lib/Tk.pm line 252
Tk::Button::butUp at C:/Perl/lib/Tk/Button.pm line 111
<ButtonRelease-1>
(command bound to event)
\n\n

<!--EDIT|xiconfjs|1159882039-->

View full thread Tk::Error: not a Tk object