perl Gtk2 widget-> foreach()具有相同的值

时间:2014-08-18 17:16:25

标签: perl widget gtk2

我正在创建一个基于gtk2的nftables配置软件,这是我的问题:

我有一个HBox,开头没有输入。然后,用户可以按下添加按钮,从而出现下拉列表的第一个实例。当按下按钮时我发出了一个信号连接,并在子界面中创建了下拉列表。在所有创建之后,我将创建的东西打包到Hbox并返回。 如果用户在添加按钮上单击另一次,则会显示另一个实例。在所有代码的末尾,所有下拉信息都应该被读取并放在一起。

我的想法是给我们HBox-> foreach()函数,并使用get_active_value()读取数据。

但是,毕竟,字符串只包含最后一个值。当我在foreach时打印出值时,也会出现最后一个值。

那么,我的错是什么? 非常感谢您的帮助;)

修改 如果我为第一个vbox选择“foo_1”和“foo_2”,在第二个vbox中选择“bar_1”和“bar_2”,则返回的字符串仅包含“bar_1 bar_2 bar_1 bar_2”。
CODE

my $Hbox = Gtk2::HBox->new();

$button->signal_connect('clicked', sub {
   my $VBox = Gtk2::VBox->new();
   my $dropdown = Gtk2::ComboBox->new_text();
   my $dropdown_2 = Gtk2::ComboBox->new_text();
#... create some values ...
   $VBox->pack_start($dropdown,FALSE,FALSE,5);
   $VBox->pack_start($dropdown_2,FALSE,FALSE,5);
   $Hbox->pack_start($VBox, FALSE,FALSE,5);
})
...
my $final;
$HBox->foreach(sub {
    $final = $final.$dropdown->get_active_text().$dropdown_2->get_active_text();
}
);
print $final;

0 个答案:

没有答案