2013-05-16 2 views
0

В строке Perl/TkMainWindow в строке меню, если я нажму на опцию, тогда я могу открыть тот же модуль дважды, три раза и т. Д. Но если это уже открыт, то он не должен открываться снова. Любая идея, как это сделать?Как проверить, открыт ли один модуль в приложении Perl/Tk

$mw = MainWindow->new; 
$mw->configure(-menu => $menubar = $mw->Menu); 
$bikes=$menubar->cascade(-label => '~Bikes'); 
$cars = $menubar->cascade(-label => '~Cars'); 


$cars->command(-label => 'Honda', -command=>\&honda_cars); 
$cars->command(-label => 'Chevrolet',-command=>\&Chevrolet_cars); 

$bikes->command(-label => 'Honda', -command=>\&honda_bikes); 
$bikes->command(-label => 'Bajaj', -command=>\&bajaj_bikes); 

Теперь, если я нажму на Шевроле, то я могу получить то же самое окно снова каждый раз, когда я нажимаю опцию в строке меню. Я хочу проверить, открыт ли он, тогда он не должен открываться снова.

+0

Установите переменную в 1 при открытии окна, установите ее на ноль при закрытии. Не открывайте окно, если для его переменной установлено значение 1. – choroba

ответ

1

Вам нужна переменная, заданная подпрограммой Chevrolet_cars и т. Д., В которой говорится, что эта страница уже открыта.

Вы ничего не говорите о том, как работает ваше приложение, но может быть обнаружено, отображается ли элемент в настоящее время без использования переменной флага.