ツリービューにポップアップメニューがあり、ユーザーがバックアップから復元するマシンを選択します。インターフェイスを簡素化し、利用可能なファイルに応じて動的に生成されるサブメニューを作成したいと思います。これは私がこれまでに持っているものです:
$restore_item->set_submenu($arc_menu);
open( FILE, "archives.db" ) or die("Unable to open file");
foreach (<FILE>) {
# if record is correct
if ( $_ =~ /archive=(.+)/ ) {
my $item = new Gtk2::MenuItem( "_" . $1 );
$item->signal_connect( 'activate' => sub { print "selected\n"; });
$arc_menu->append($item);
}
}
close(FILE);
ただし、実際には、ファイルは動的に変更される可能性があり、カウントなどに依存できないため、メニュー項目のテキストを読む必要があります。コールバックからメニュー項目のテキストを取得する方法がわかりません。