【发布时间】:2019-12-07 05:18:15
【问题描述】:
我想知道如何初始化一个 GActionMap 变量。
我在这里搜索 https://developer.gnome.org/gio/stable/GActionMap.html 以找到一个实例化 GActionMap 的函数,但我没有在那里和任何地方找到它。
我试图在我的应用程序中插入一些操作,以使用该功能
item = g_menu_item_new(labelItem, "sair");
其中item 是一个菜单项,labelItem 是一个菜单项标签,sair 是我要在单击该项时触发的函数名称。
但是当我运行代码时,我得到“分段错误”,这会在 g_action_map_add_action(grupo, G_ACTION(acao)); 中停止执行:
GSimpleAction *acao;
GActionMap *grupo;
acao = g_simple_action_new("sair", NULL);
g_signal_connect(
G_OBJECT(acao), "activate", G_CALLBACK(sair), window);
g_action_map_add_action(grupo, G_ACTION(acao));
gtk_widget_insert_action_group(
window, "grupo", G_ACTION_GROUP(grupo));
window 是应用程序窗口。
消息错误如下:
GLib-GObject-CRITICAL **: 17:01:01.711: g_type_interface_peek: assertion 'instance_class != NULL' failed
[1] 11396 segmentation fault (core dumped)
我正在使用 gtk4。
【问题讨论】:
-
谢谢!我没有使用 GActionMap 变量,而是在
g_action_map_add_action中使用了 GApplication 变量,它起作用了。