You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在GTK中为动作添加有效键盘快捷键时应用崩溃的原因?

GTK应用设置<Ctrl>n类快捷键时崩溃问题

调用gtk_application_set_accels_for_action为GTK动作添加<Ctrl>n这类键盘快捷键时,应用会直接崩溃,示例代码如下:

// "app" 和 "handler" 已提前定义

const char *action_id = "action";
const char *full_id = "app.action";
// 移除"Ctrl"(改为{"<>n"})
// 或者添加一个无效快捷键(改为{"<Ctrl>n", "<>f"})
// 应用就不会崩溃
const char *keyboard_shortcuts[] = { "<Ctrl>n" };

GSimpleAction *action = g_simple_action_new (action_id, NULL);
g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (action));
g_signal_connect (action, "activate", G_CALLBACK (handler), NULL);
// 移除下面这行代码,应用就不会崩溃
gtk_application_set_accels_for_action (GTK_APPLICATION (app), full_id, keyboard_shortcuts);

补充现象

  • 将键盘快捷键改为无效内容(如<>n),应用可正常启动,但所有快捷键无法生效。
  • 在快捷键数组中添加无效项(如{"<Ctrl>n", "<>f"}),应用可正常启动,但所有快捷键无法生效。

内容的提问来源于stack exchange,提问作者david-swift

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 08:28:33