我使用gtk在C中制作一个小型图形程序。
我设法创建了一个键盘快捷键,当我按下escap按钮时,应用程序退出:
gboolean on_key_press (GtkWidget *widget, GdkEventKey *event, gpointer data){
switch(event->keyval){
case GDK_Escape:
gtk_main_quit();
break;
}
return TRUE;
}
当我创建GUI时,我有这个代码来检测按键:
g_signal_connect(G_OBJECT (window), "key_press_event", G_CALLBACK(on_key_press), pCtxt);
问题是,它禁用任何类型的交互,例如使用TAB键选择按钮,甚至在gtk_entry中输入文本。
如何在不破坏按键事件的默认行为的情况下使用键盘快捷键?
答案 0 :(得分:1)
让事件处理程序return FALSE;
进一步传播事件。正如documentation所说:
返回
TRUE
以阻止为该事件调用其他处理程序。FALSE
进一步宣传该事件。