保持窗口在对话框中
问题描述:
#!/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。保持窗口在对话框中
答
如何与周围:
while (1)
{
#WINDOW 1
... rest of program
}
您可以添加的退出选项对话框,并有选择该选项时打破while循环。
+0
我知道,但我认为会有一些选项像--keep-window –
答
虽然dialog
使这非常容易,但它不是最灵活的解决方案。一个合适的GUI应用程序会有一个单一的窗口,其外观会响应用户通过回调交互而改变。 Perl有很多工具可以做到这一点;如果你在GTK上,看看gtkperl。或者看看http://perl-begin.org/uses/GUI/
无论如何,Perl有什么好处?我喜欢Perl,但这看起来像一个受可怕的外星人疾病折磨的shell脚本。 – tripleee
这是我的Perl代码的一部分。 –