GTK+中为控件设置窗体级热键

方法很简单,下面以给Gtkbutton设置热键为例。

首先介绍要用到的两个函数:
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键值 我们要分配的热键 这里是‘E’键
accel_mods : 组合键(Shift Ctrl之类的)
accel_flags : 设为GTK_ACCEL_VISIBLE

void                 gtk_window_remove_accel_group       (GtkWindow  * window,
                                                         GtkAccelGroup 
* accel_group);

将一个
GtkAccelGroup加入到窗体中。

 
下面给我们的button1加上热键:
/*注意~!
 GDK的键值宏GDK_E包含在<gdk/gdkkeysyms.h>中  我们需要在开头

#include  <gdk/gdkkeysyms.h>

*/


GtkWidget 
* mainWindow  =  gtk_window_new (GTK_WINDOW_TOPLEVEL);  // 要是TOPLEVEL的

GtkWidget 
* button1 =  gtk_button_new();

// 新建一个GtkAccelGroup
GtkAccelGroup  * gag  =  gtk_accel_group_new();

// 设置热键  (不需要组合键,所以accel_mods设为0)
gtk_widget_add_accelerator(button1, " clicked " ,gag,GDK_E, 0 ,GTK_ACCEL_VISIBLE);

// 将GtkAccelGroup设置给主窗体
gtk_window_add_accel_group(GTK_WINDOW(mainWindow),gag);



上面的代码片段就完成了热键的设置,启动你的窗体试试吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值