我们在写gtk界面程序的时候,有时希望给程序添加快捷键,下面以给Gtkbutton设置快捷键为例:
方法一:
通过GtkAccelGroup:
- 首先介绍我们将用到的几个函数:
GtkAccelGroup *gtk_accel_group_new (void);
功能简介:
用于创建一个新的组合器,一个组合器就代表着一组组合键,利用下面的函数可以给相应的插件添加组合器,并给组合器绑定相应的组合按钮。
void gtk_widget_add_accelerator(GtkWidget *widget,
const gchar *accel_signal,
GtkAccelGroup *accel_group,
guint accel_key,
GdkModifierType accel_mods,
GtkAccelFlags accel_flags);
参数介绍:
widget: 需要帮定热键的控件 我们这里是button1
accel_signal : 按下热键后要激活的控件的信号我们这里是“clicked”
accel_group : 指定一个accel group,这个 accel group将被分配给TopLevel的控件 (主窗体)
accel_key : GDK键值 我们要分配的热键
accel_mods : 组合键(Shift Ctrl之类的)
accel_flags : 设为GTK_ACCEL_VISIBLE
功能简介:
用于给插件添加热键或者组合按键,当组合键按下时激发相应的插件的信号,执行关联的回调函数。
void gtk_window_add_accel_group(GtkWindow *window,
GtkAccelGroup *accel_group);
参数介绍:
window:所创建gui的