Thread Scrolled Text - Label die 2.: Scrolled Text - Label die 2. (4 answers)
Opened by ahnungsloser at 2004-08-24 22:01

ahnungsloser
 2004-08-24 22:01
#42589 #42589
User since
2003-09-03
80 Artikel
BenutzerIn
[default_avatar]
Hi,

hatte shconmal vor nicht allzu langer Zeit, hier gepostet und superb weitergeholfen bekommen, anbei nochmals an alle ein recht herzliches Danke. Nun hab ich mit dem selben Teil immer noch so meine Problemchen, ich lasse aus einem Array, die verschiedensten Hosts pingen, das funzht auf der Shell(Linux) ganz opk und dank einer foreach schleife wird das auch wundervoll auf der shell dargestellt, host für host. Wenn ich das ganze nu mit der TK Oberfläche kreuze, wird immer nur der letzte Eintrag, aus dem Array angezeigt, bzw. gescrolled???? und da is der hund begraben.
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
#!/usr/bin/perl
use Tk;

$MW = MainWindow->new(-title => "Reach-Ticker by Dataabbel");
$MW->resizable(0,0);
$MW->geometry("300x30+10+20");
$MW->repeat(90, \&tick);
$LabelW = $MW->Label(-textvariable => "")->pack(-expand => 1, -fill => 'x'); # leeres label erzeugen

@data = qw (www.petra-hille.de www.google.de www.yahoo.de www.perl-community.de);

foreach $host (@data) {
$| = 1;
@pin = `ping -c 1 $host`;

if ($pin[4] =~ /received/) {
chomp ($host);
$text = $host . " received ";
$LabelW->configure(-textvariable => ""); # sollte das Label vorsichtshalber löschen, glaube unsinnig
$LabelW->configure(-textvariable => \$text); # hier sollte nu der aktuelle host stehen,steht aber nur letztes element aus @data
}
}

MainLoop;
sub tick {
$width = $LabelW->cget('width');
return unless $width < length $text;
$text = substr($text,1,length($text)-1) . substr($text,0,1);

}

Eigentlich wollte ich das ganze ja noch so aufpeppen, sollte eben der host nich "up" sein, dass ein extra fenster samt Sound losheult usw.

View full thread Scrolled Text - Label die 2.: Scrolled Text - Label die 2.