Держать окно в диалоге - PullRequest
2 голосов
/ 26 августа 2011
#!/usr/bin/perl
use warnings;
#WINDOW 1
system ("dialog --keep-window --menu Customize 10 70 50 'Flush rules' 'Clear all the rules' 2> /tmp/customize.txt ");
open FILE4, "/tmp/customize.txt" or die $!;
     chomp(my $customize = <FILE4>);
           if($customize =~ /Flush rules/){
           `iptables -F`;
           system ("dialog --infobox 'All tables have been flushed.' 05 35");
           }
           else{
               exit;
           }

Когда вышеуказанный код выполняется, появляется диалоговое окно, в котором отображается опция сброса правил. Когда я нажимаю Enter, команда iptables -F выполняется и сбрасывает все правила iptables. После этого программа завершается. Я хочу, чтобы после сброса всех правил окно, которое появилось при запуске, т.е. которое дает возможность сбрасывать правила, не должно закрываться. Программа не должна завершаться после сброса правил. Он должен вернуться к окну1 .

Ответы [ 2 ]

3 голосов
/ 26 августа 2011

Как насчет окружения:

while (1)
{
     #WINDOW 1
     ... rest of program
}

Вы можете добавить опцию выхода в диалоговое окно и разорвать цикл while, когда эта опция выбрана.

0 голосов
/ 04 сентября 2011

Хотя dialog делает это очень легко, это не самое гибкое решение. Правильное приложение с графическим интерфейсом будет иметь одно окно, внешний вид которого изменяется в ответ на взаимодействие с пользователем через обратные вызовы. Есть много инструментов, чтобы сделать это из Perl; если вы находитесь на GTK, посмотрите на gtkperl. Или посмотрите http://perl -begin.org / использует / GUI /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...