Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在哪里可以找到GTK中各种信号的回调函数原型?_Gtk - Fatal编程技术网

在哪里可以找到GTK中各种信号的回调函数原型?

在哪里可以找到GTK中各种信号的回调函数原型?,gtk,Gtk,我刚刚开始学习GTK+。但是,我在文档中找不到要点。即菜单上“激活”等信号的回调原型。 我知道可能会有一个标准的回调。但这并不清楚 这是菜单选择回调的正确原型吗 // Is this correct? It does appear to work. But I don't want to be sure so as to avoid any corruption static void menu_select(GtkMenu* menu, int item) { printf("menu

我刚刚开始学习GTK+。但是,我在文档中找不到要点。即菜单上“激活”等信号的回调原型。 我知道可能会有一个标准的回调。但这并不清楚

这是菜单选择回调的正确原型吗

// Is this correct?  It does appear to work.  But I don't want to be sure so as to avoid any corruption
static void menu_select(GtkMenu* menu, int item)
{
  printf("menu_activate: %d\n", item);
}


void build_menu()
{
  // ...
  login = gtk_menu_item_new_with_label("Login");
  // ...
  separator = gtk_separator_menu_item_new();
  quit = gtk_menu_item_new_with_label("Exit");

  // ...
  g_signal_connect(G_OBJECT(login), "activate", G_CALLBACK(menu_select), GINT_TO_POINTER(0));
  g_signal_connect(G_OBJECT(quit), "activate", G_CALLBACK(menu_select), GINT_TO_POINTER(1));
}

在文件中。类上的每一页都有一个列有信号的部分;每个信号都有自己的部分,从正确的原型开始。这是GTK+的哪个版本?是的,您的代码是错误的:最后一个参数的类型总是
gpointer
;您需要在回调函数中使用
GPOINTER\u to_INT()
,才能正确地将
INT
返回。(您现在拥有的将被破坏。不幸的是,没有GCallbacks的类型检查,但是c'est la c.)@andlabs-谢谢。然而,对于GTK菜单,我看到的文档页面中没有显示“激活”信号。我猜是在不同的层次?菜单的激活原型在哪里?你找错了类;你想要的,谢谢。。。现在有道理了。