将窗口保持在对话框中

时间:2011-08-26 18:08:02

标签: linux perl dialog

#!/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规则。之后程序终止。我希望在刷新所有规则之后,启动的窗口,即提供刷新规则的选项不应该关闭。冲洗规则后,程序不应终止。它应该回到 window1

2 个答案:

答案 0 :(得分:3)

如何围绕它:

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

您可以在对话框中添加退出选项,并在选择该选项时中断while循环。

答案 1 :(得分:0)

尽管dialog使这很容易,但它并不是最灵活的解决方案。适当的GUI应用程序将具有单个窗口,其外观响应于通过回调的用户交互而改变。 Perl有很多工具可以做到这一点;如果您使用的是GTK,请查看gtkperl。或者查看http://perl-begin.org/uses/GUI/