代码之家  ›  专栏  ›  技术社区  ›  gangabass

文本元素的缓冲/更新问题

  •  0
  • gangabass  · 技术社区  · 16 年前

    #!/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 回复  |  直到 16 年前
        1
  •  1
  •   gangabass    16 年前

    Tkx::update(); 做我想做的。

        2
  •  1
  •   Jeff    15 年前

    在这种情况下,Tkx::update\u idletasks()将是首选调用。