2010-08-27 2 views
0

У меня есть этот код:Буферизация/Обновление выпуска для текстового элемента

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

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

+5

Пожалуйста, переместите свой ответ в [окно ответа ниже] (http://stackoverflow.com/questions/3583038#post-form), так как этот вопрос все еще отображается как неотвеченный в системе. – daxim

+0

Перекрестные ссылки на PerlMonks: http://www.perlmonks.org/?node_id=857650 – toolic

ответ

1

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