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 回答