C GTK:回调函数签名概述

C GTK:回调函数签名概述,c,gtk,gtk2,C,Gtk,Gtk2,在GTK2应用程序中,当某些事件发生时,可以调用用户定义的回调函数,例如: static void on_destroy(GtkObject* o) { gtk_main_quit(); } int main(int argc, char * argv[]) { ... g_signal_connect(window1, "destroy", G_CALLBACK(on_destroy), NULL); ... } 回调函数的签名取决于信号或事件的类型

在GTK2应用程序中,当某些事件发生时,可以调用用户定义的回调函数,例如:

static void on_destroy(GtkObject* o) {
    gtk_main_quit();
}

int main(int argc, char * argv[]) {
    ...    
    g_signal_connect(window1, "destroy", G_CALLBACK(on_destroy), NULL);
    ...
}
回调函数的签名取决于信号或事件的类型。我在寻找这些签名的简要概述,我在。但是,它似乎缺少GtkTreeview信号的回调签名,如行激活、选择光标行等

是否有其他来源描述了所有回调签名的正确实现,最好是在简要概述中,而不是分散在几个章节中?

您应该检查

例如,示例中连接的信号来自GtkWindow父类之一GtkObject

“摧毁”信号

无效用户函数GtkObject*对象,gpointer用户数据

检查树,列出相关信号和各自原型的小部件:


注意:父类并不意味着多重继承,只是继承层次结构中上面的一个类。

您需要学习如何使用官方帮助。在每个小部件帮助页面的顶部都有一个导航栏。在这里,您可以直接链接到信号、对象层次结构父类等

因此,如果您正在为小部件寻找特定的信号,只需转到该小部件的帮助页面,然后单击导航栏中的信号链接。如果信号不在那里,那么它必须在父类中。因此,您单击对象层次结构链接,该链接将您发送到小部件的继承树。单击其父项,然后再次搜索信号


或者,您可以安装随Linux发行版或MSYS2 for Windows安装的devhelp浏览器。有一个搜索字段,您可以在其中键入要查找的符号的名称,包括信号。

我认为GTK邮件列表相当活跃。那将是一个问这个问题的好地方。然而,文档请求显然与主题无关。GTK对象早在GTK+2时代就已被弃用。那东西被送到了GObject。GTK+2天已经计算在内,GTK+3已经存在多年,并且有计划在2019年使用GTK+4,因此如果您没有维护旧的GTK+2应用程序,请使用GTK+3。