Thread [Tk] -textvariable an subroutine binden
(16 answers)
Opened by styx-cc at 2017-07-25 12:08
Hallo Community!
Folgender Code: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #!/usr/bin/perl -w use strict; use Tk; my $counter = 0; my $test = new Test(); my $mw = tkinit(); my $button1 = $mw->Button(-textvariable => \$counter)->pack(); my $button2 = $mw->Button(-textvariable => \$test->{'counter'} )->pack(); $mw->repeat(100 => sub { fetch_data($test) }); MainLoop; sub fetch_data { my $obj = shift; $counter++; $obj->counter( $obj->counter()+1 ); } package Test; sub new { bless {counter => 0}, shift; } sub counter { $_[1] ? $_[0]->{'counter'} = $_[1] : $_[0]->{'counter'}; } 1; Funktioniert wie gedacht - beide Buttons zählen synchron hoch. Jetzt habe ich allerdings Objekte mit vielen verschiedenen Werten und möchte vermeiden, via "-textvariable => \$test->{'counter'}" direkt auf die Instanzvariablen zuzugreifen, lieber würde ich getter und setter verwenden, z.B. "-textvariable => \$test->counter()" (2. Button bleibt bei 0 stehen). Mir fällt aber keine Möglichkeit ein. Habt Ihr eine Idee? Lieben gruß Pörl.
|