2010-08-27 72 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!"); 
} 

我需要看哪个ID处理,但只在最后得到整个列表。这就像缓冲文件句柄,但我不知道。如何在插入文本框后查看文本?

+5

请将您的答案移动到[答案框下方](http://stackoverflow.com/questions/3583038#post-form),因为这个问题在系统中仍然显示为未答复。 – daxim 2010-08-27 10:59:30

+0

交叉发表在PerlMonks上:http://www.perlmonks.org/?node_id=857650 – toolic 2010-08-27 13:17:00

回答

1

我找到Tkx::update();做我想做的事。

1

在这种情况下,Tkx :: update_idletasks()将是首选的调用。