如何避免魔术Gtk2 accel_key数字?

问题描述

| 我想在我的GTK应用程序中使用Perl的
Gtk2
绑定为子程序添加加速器。
Gtk2::AccelGroup
->connect()
$accel_key
作为参数,它似乎是表示键的整数。
Gtk2
可以输出常量或代替该幻数的函数吗?     

解决方法

使用Gtk2 :: Accelerator-> parse():
use Gtk2;
my ( $key,$mods ) = Gtk2::Accelerator->parse( \'<control><alt>a\' );
# $key is 97
# $mods is \'[ control-mask mod1-mask ]\'

my $ag = Gtk2::AccelGroup->new();
$ag->connect(
    Gtk2::Accelerator->parse( \'<control><alt><a>\' ),[qw/visible/],sub { say \'hi\' }
);