Buffering/Updating issue for text element

432 views Asked by At

I have this code:

#!/usr/bin/perl

use strict;
use Tkx;

my $mw = Tkx::widget->new('.');

$mw->g_wm_minsize( 400, 350 );

my $btn_start = $mw->new_ttk__button( -text => "Start", -width => 60, -command => sub { start(); } );

my $txt_processed_domains = $mw->new_tk__text( -width => 40, -height => 10, -state => "disabled", -wrap => "none" );

Tkx::grid( $btn_start, -row => 2, -columnspan => 3, -padx => 10, -pady => 10 );

Tkx::grid( $txt_processed_domains, -row => 3, -columnspan => 3, -padx => 10, -pady => 10 );

Tkx::MainLoop();

sub start {

    foreach my $id ( 1.. 10 ) {

        $txt_processed_domains->configure(-state => "normal");
        $txt_processed_domains->insert_end( "$id => Available\n" );
        $txt_processed_domains->configure(-state => "disabled");

        sleep 1;
    }

    Tkx::tk___messageBox( -message => "Completed!" );
}

I need to see which ids are processed but only get whole list at the end. It's like buffering with filehandles but i'm not sure. How to see text in the text box just after inserting it?

2

There are 2 answers

0
gangabass On BEST ANSWER

I find Tkx::update(); do what i want.

0
Jeff On

Tkx::update_idletasks() would be the preferred call in this case.