Скрыть окно в Perl/Tk и показать снова вкл. все виджеты

Я хочу скрыть главное окно на определенное время, а затем показать его снова. Пример:

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;
}

С помощью приведенного выше кода появится главное окно, но ни один из виджетов не отображается. Что мне нужно сделать, чтобы все выглядело точно так, как оно было до того, как было спрятано?

Любые намеки приветствуются.

1 ответ

Решение

Вам нужно позвонить $mw->update(); после тебя raise() главное окно.

Tcl Tk Wiki объясняет почему в некоторых деталях.

Другие вопросы по тегам