如何初始化 GActionMap 变量?
How do I initialize a GActionMap variable?
我想知道如何初始化 GActionMap 变量。
我在此处 https://developer.gnome.org/gio/stable/GActionMap.html
搜索以查找实例化 GActionMap 的函数,但我没有在任何地方找到它。
我试图在我的应用程序中插入一些操作,以使用该功能
item = g_menu_item_new(labelItem, "sair");
其中 item
是菜单项,labelItem 是菜单项标签,sair
是我要在单击项目时触发的函数名称。
但是当我 运行 代码时,我得到 "segmentation fault",特别是在 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
是应用 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
是一个接口 (https://developer.gnome.org/gio/stable/GActionMap.html) which is implemented, for example, by GApplication
(https://developer.gnome.org/gio/stable/GApplication.html)。
因此,您应该将 GApplication
实例(或实现接口 GActionMap
的另一种类型)传递给函数,就像在本教程中所做的那样:https://developer.gnome.org/GAction/ 用于类似的用例(不同的功能,相同的输入)。
如果 link 损坏了,我会在此处复制您应该编写的代码,假设您可以访问 GApplication
:
的正确初始化实例
GApplication * app = ...
...some other code ...
g_action_map_add_action(G_ACTION_MAP(app), G_ACTION(acao));
我想知道如何初始化 GActionMap 变量。
我在此处 https://developer.gnome.org/gio/stable/GActionMap.html
搜索以查找实例化 GActionMap 的函数,但我没有在任何地方找到它。
我试图在我的应用程序中插入一些操作,以使用该功能
item = g_menu_item_new(labelItem, "sair");
其中 item
是菜单项,labelItem 是菜单项标签,sair
是我要在单击项目时触发的函数名称。
但是当我 运行 代码时,我得到 "segmentation fault",特别是在 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
是应用 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
是一个接口 (https://developer.gnome.org/gio/stable/GActionMap.html) which is implemented, for example, by GApplication
(https://developer.gnome.org/gio/stable/GApplication.html)。
因此,您应该将 GApplication
实例(或实现接口 GActionMap
的另一种类型)传递给函数,就像在本教程中所做的那样:https://developer.gnome.org/GAction/ 用于类似的用例(不同的功能,相同的输入)。
如果 link 损坏了,我会在此处复制您应该编写的代码,假设您可以访问 GApplication
:
GApplication * app = ...
...some other code ...
g_action_map_add_action(G_ACTION_MAP(app), G_ACTION(acao));