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
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:
$hl->repeat(1000, sub
{
print $variable;
}
);
MainLoop();
 
Menu-Sub:
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:
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-->