Thread listbox refresh mit Tk::After (11 answers)
Opened by hudo at 2007-07-27 23:04

hudo
 2007-08-10 13:53
#97881 #97881
User since
2003-11-20
72 Artikel
BenutzerIn
[default_avatar]
Hallo ptk,
hab das mit fileevent ausprobiert, funktioniert aber nicht
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/perl

use Tk;
use Tie::File;
use Tk::after;


my $liste;
my $liste_font;
my $breite=100; ### Anzahl der abgezeigten Zeichen in der Liste
my $the_selectmode = "extended"; ### "single","multiple","extended"
my $enter;
my @array_file;
my $filename="meinfile.txt";

open (FH, "<$filename" ) || die "Kann $filename nicht oeffnen $! \n";

my $mw = MainWindow->new();

### rahmen fuer Hauptseite
my $frame1 = $mw->Frame(-width=>50, -height=>50, -bg=>"seashell");
my $frame2 = $mw->Frame(-width=>5, -height=>5, -bg=>"grey80");

$liste_font = $mw->fontCreate(-family=>"courier", -size=>7 ); ### zB treffer-Liste

my $liste = $frame1->ScrlListbox(

##-font=>$liste_font,
-setgrid=>1,
-scrollbars=>"se",
-background=>"lemonchiffon3",
-borderwidth=>3,
-highlightthickness=>10,
-height => 30,
-selectforeground=>"blue",
-selectbackground=>"green",
-relief=>"ridge",
-exportselection => 1)->pack(-side=>"right", -expand=>1, -fill=>"both");

my $exitButton = $frame2->Button ( -text=>"Schliessen" ,-command=>"exit" ,-bg=>"red" ,-activebackground=>"red" ,-activeforeground=>"cyan" )->pack(-anchor=>"w" ,-padx=>10 ,-pady=>15 ,-ipady=>10 ,-fill=>"x");



##############################
### Packen der Rahmen auf Hauptseite ############################

$frame1->pack(-side => 'left' ,-expand=>1 ,-fill=>"both");
$frame2->pack(-side => 'right',-expand=>1 );
$frame2->pack(-expand=>1 ,-fill=>"both");


$mw->fileevent(FH, 'readable', [\&refresh_list] );
#$mw->fileevent(FH, readable=>\&refresh_list );

$mw->MainLoop;


#########
sub refresh_list {
my $line;

$liste->delete(0,"end");

if ( $line = <FH> ) {
chomp $line;
$liste->insert(0,$line);
} else {
$mw->fileevent (FH, 'readable', "");
} ## if

} ## refresh_list
############

View full thread listbox refresh mit Tk::After