Проблема с буферизацией / обновлением для текстового элемента - PullRequest
0 голосов
/ 27 августа 2010

У меня есть этот код:

#!/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!" );
}

Мне нужно посмотреть, какие идентификаторы обрабатываются, но в конце можно получить только весь список. Это как буферизация файловыми дескрипторами, но я не уверен. Как увидеть текст в текстовом поле сразу после его вставки?

Ответы [ 2 ]

1 голос
/ 08 декабря 2010

Tkx :: update_idletasks () будет предпочтительным вызовом в этом случае.

1 голос
/ 28 августа 2010

Я нахожу Tkx::update(); делай, что я хочу.

...