Thread Fenster in Schleife (10 answers)
Opened by DrWhiteLetter at 2005-04-20 17:30

Strat
 2005-04-20 22:19
#43673 #43673
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
da scheint es unter linux irgendein problem zu geben... vielleicht kann ptk genaueres dazu sagen, ich kenne mich mit Tk nicht so gut aus...

ein MainWindow ist nur eine spezielle Form eines Tk::Toplevel... kannst du vielleicht darauf ausweichen?

ich wuerde das problem ein wenig anders angehen und das fenster nicht jedesmal komplett killen, sondern das bild in einen button reinsetzen (geht genauso wie als label) und nur das bild bei einem klick darauf killen und das naechste anzeigen, z.B. so mal ins blaue reingecoded, weiss nicht, ob es laeuft:
Code: (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
32
33
34
35
36
37
use FindBin;
....

my $image;
my $mw = MainWindow->new();

our @files = glob("$FindBin::Bin/test/*.jpg");

my ($imageFile) = &GetNextFile();

my $button = $imageFrame->Button(-image => $image)
->pack(-fill => 'both', -expand => 1);

$button->configure(-command => sub {
($imageFile) = &GetNextFile();
$button->configure(-image => $image);
});

&Tk::MainLoop;
# ---------------------------------------
sub GetNextFile {
while (my $file = shift(@files)) {
next if -d "$inputDir/$file";

if ($file =~ /\.jpe?g$/) {
unless (ref($image)) {
eval {
$image = $imageFrame->Photo(-file => "$file", -format => 'jpeg');
};
if ($@) {
print "$file: $@\n"; $image = undef; next;
} # if
} # unless

return (&File::Basename::basename($file));
} # while
} # GetNextFile

kann aber sein, dass das ein memory leak ist...\n\n

<!--EDIT|Strat|1114021217-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Fenster in Schleife