如何在TopLevel窗口上打开并抓取一个窗口

时间:2013-06-03 14:06:42

标签: perl perl-module perltk

我想在顶层窗口内打开一个窗口,直到该窗口打开,我无法移回任何先前打开的窗口。这是我的代码:

$mw = MainWindow->new; # This will make my main Window
$mw->title("Main Window");
$menubar = $mw->Menu;
$mw->configure(-menu =>  $menubar); 

$sub_window=$menubar->cascade(-label => 'Menu',-tearoff => 0);
$sub_window->command(-label => 'Sub_Menu_Window',-command=>\&Open_window);  # I've placed a sub menu which will open new window on main window.

sub Open_window
{
 $mw=shift;
 $new_wind =$mw->Toplevel(-title => "New Sub Window");
 $new_wind->grab;  #here i have opened a new window and I won't be able to go back to my main window unless I will close this because of grab.

 $new_wind ->Button(-text=>"another_window",-command =>\&AnotherWindow) ->pack();

    sub AnotherWindow
    {
                  # What Code Should I enter here to open a new window when I press button "another_window". ALso I want that until this window is closed I should not be able to work with other window previously opened.(Same as grab used with toplevel window)
    }

}
MainLoop;

我想让这个AnotherWindow像toplevel窗口一样,所以当我按下按钮直到那个窗口仍然打开时,我无法使用任何其他打开的窗口。

1 个答案:

答案 0 :(得分:0)

我们可以这样做:

sub AnotherWindow
{
    $window_over_top_level =$new_wind->Toplevel(-title => "Window Over Top Level With Grab");
$window_over_top_level->geometry( "270x380");
$window_over_top_level->grab;
}