2

メインウィンドウを一定時間非表示にしてから、再度表示したい。例:

use Tk;

my $mw = new MainWindow;
my $lblMsg = $mw -> Label(-text=>"blabla")-> grid();
my $btnPostpone = $mw -> Button(-text=>"Postpone for (min): ",
              -command =>\&postpone)-> grid();

MainLoop;

sub postpone{
$mw-> withdraw();
sleep(1);
$mw->deiconify();
$mw->raise();
sleep(1);
exit;
}

上記のコードでは、メイン ウィンドウが再表示されますが、ウィジェットは表示されません。すべてが非表示になる前とまったく同じように見えるようにするには、どうすればよいですか?

ヒントをいただければ幸いです。

4

1 に答える 1

2

メインウィンドウの$mw->update();後に呼び出す必要があります。raise()

Tcl Tk Wikiでは、その理由が少し詳しく説明されています。

于 2010-07-28T01:47:55.713 に答える