Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]13175[/thread]

Bezug zu Frames nicht möglich, "TK callback" Fehler

Leser: 2


<< >> 2 Einträge, 1 Seite
jesusjones
 2009-02-23 23:34
#119087 #119087
User since
2009-02-23
1 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

hab als Neuling hier im Forum gleich ne Frage.
Ich möchte innerhalb einer Schleife eine mir unbekannte Anzahl
( = in einer config Datei definierte)
von Frames im Hauptfenster anordnen (also Perl mit TK).

Jedes Subframe enhält eine "Entry" Feld und einen Button.
Der Aufbau der Fenster erfolgt problemlos.
Nur wenn ich dann den Knopf drücke fehlt der Bezug zu den Subframe, in welchem der Knopf gedrückt wurde.

Wie kann ich einen Bezug herstellen, wissen in welchem Subframe der Knopf gedrückt wurde?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
foreach (@cfg_content)
{       
...
        my $subframe=   $file_frame_main        ->Frame(-relief =>'groove',-borderwidth =>2)->pack(-padx => 5, -pady => 1,-side => 'top',-anchor=>'nw',-fill=>'x'); #Frame for file info
        my $sub_header=         $subframe               ->Frame()->pack(-side=>'top',-fill=>'x');
        my $sub_read_sect=      $subframe               ->Frame()->pack(-side=>'top',-fill=>'x');
        $sub_header->Label(-text => "$gui_text ($abbr)\[$framecounter\]")->pack(-side =>'top',-fill=>'x');
        my $sub_read_sect_entry=$sub_read_sect->Entry()->pack(-anchor=>'w',-side=>'left');
        $sub_read_sect->Button(-text => "for reading",-command => 
                sub {
                        @sub_write_sect_entry[$framecounter]->delete(0,length(@sub_write_sect_entry[$framecounter]->get()));
                        print "$framecounter"
                } )->pack(-anchor=>'e',-side=>'right',-fill=>'x');
        $framecounter+=1;
...
}
#Kein Kommentar
 2009-02-24 01:14
#119090 #119090
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
meinst du so was?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl
use strict;
use warnings;

use Tk;

my $mw = MainWindow->new();

foreach my $index (1..6){
my $frame = $mw->Frame()->pack();

$frame->Button(
-text => "Button $index",
-command => sub{
print "Frame $index\n";
}
)->pack();
}

Tk::MainLoop();
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
<< >> 2 Einträge, 1 Seite



View all threads created 2009-02-23 23:34.