2010-07-25 250 views
2

我想隱藏一段時間的主窗口然後再顯示它。 實施例:在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; 
} 

與上面的代碼在主窗口將再次出現,但沒有所述窗口小部件被顯示。 我必須做些什麼才能讓所有東西看起來完全像隱藏前的樣子?

任何提示讚賞。

回答

2

您需要先撥$mw->update();raise()的主窗口。

Tcl Tk Wiki解釋了爲什麼在一個細節。

+0

非常感謝。這個鏈接讓事情變得清晰。 – user401304 2010-07-28 08:05:55

+0

修復了斷開的鏈接。 – 2016-06-02 12:50:26