in reply to How the Perl/TK scroll box like MSDOS rolling display data?
#!/usr/bin/perl use warnings; use strict; use Tk; my $mw = new MainWindow::; my $frm_name = $mw->Frame(); my $lab = $frm_name->Label(-text => 'IP:'); my $ent = $frm_name->Entry(); my ($txt, $but); $but = $mw->Button(-text => 'Start Ping', -command => sub { push_button($but, $txt, $ +ent) }); my $textarea = $mw->Frame(); $txt = $textarea->Text(-width => 40, -height => 10); my $srl_y = $textarea->Scrollbar(-orient=>'v', -command => [yview = +> $txt]); my $srl_x = $textarea->Scrollbar(-orient=>'h', -command => [xview = +> $txt]); $txt->configure(-yscrollcommand => ['set', $srl_y], -xscrollcommand => ['set', $srl_x]); $lab->grid(-row => 1, -column => 1); $ent->grid(-row => 1, -column => 2); $frm_name->grid(-row => 1, -column => 1, -columnspan => 2); $but->grid(-row => 4, -column => 1, -columnspan => 2); $txt->grid(-row => 1, -column => 1); $srl_y->grid(-row => 1, -column => 2, -sticky => 'ns'); $srl_x->grid(-row => 2, -column => 1, -sticky => 'ew'); $textarea->grid(-row => 5, -column => 1, -columnspan => 2); MainLoop(); sub push_button { my ($but, $txt, $eng) = @_; open my $PING, '-|', 'ping', $eng->get or die; $but->configure(-state => 'disabled'); $txt->repeat(1000, sub {$txt->insert('end', scalar <$PING>)}); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: How the Perl/TK scroll box like MSDOS rolling display data?
by Anonymous Monk on Nov 28, 2012 at 13:03 UTC | |
by choroba (Cardinal) on Nov 28, 2012 at 14:08 UTC | |
by Anonymous Monk on Nov 28, 2012 at 14:14 UTC |