#!/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>)}); }
In reply to Re: How the Perl/TK scroll box like MSDOS rolling display data?
by choroba
in thread How the Perl/TK scroll box like MSDOS rolling display data?
by perllee
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |