Hi Monks
How can I change a Tk main window fileevent to go for reading the incoming data every 100ms. Below is my code.
You may even give other small example as well to show this.
use Tk; open(CHILD, "./fileevent2piper 2>&1 |") or die "Can't open: $!"; my $mw = new MainWindow; my $t = $mw->Scrolled("Text",-width => 80, -height => 25, -wrap => 'no +ne'); $t->pack(-expand => 1); $mw->fileevent('CHILD', 'readable', [\&fill_text_widget, $mw]); MainLoop; sub fill_text_widget { my ($widget) = @_; if (eof(CHILD)) { $widget->fileevent('CHILD', "readable", undef); # cancel bindi +ng return ; } else { if (sysread ('CHILD', $_, 128)) { print "here $_ \n"; $t->insert('end', $_); # Append the data read $t->yview('end'); } else { $t->insert('end', times); $t->yview('end'); $widget->fileevent('CHILD', "readable", undef); # cancel b +inding return; } } }
The fileevent2piper code is
$|++; for my $i ( 0 .. 5) { print $i, "\n"; print `ls -la`; sleep 1; }
In reply to can I call a tk fileevent with a delay by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |