在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);
...
}
回调函数的签名取决于信号或事件的类型。我正在寻找这些签名的简明概述,我在chapter about signals中找到了GTK+ 2.0 tutorial。但是,它似乎缺少GtkTreeview信号的回调签名,如row-activated
,select-cursor-row
等。
是否有任何其他来源描述所有回调签名的正确实现,最好是简要概述而不是分布在几个章节中?
答案 0 :(得分:1)
例如,在您的示例中连接的destroy信号来自GtkWindow父类之一,GtkObject
“破坏”信号
void user_function (GtkObject *object, gpointer user_data)
检查树,列出小部件以获取相关信号和相应的原型:
https://developer.gnome.org/gtk2/stable/TreeWidgetObjects.html
注意:父类并不意味着多继承,只是继承层次结构中的一个类。
答案 1 :(得分:0)
您需要了解如何使用官方帮助。在每个小部件帮助页面上,顶部有一个导航栏。在那里,您可以直接链接信号,对象层次结构(父类)等。
因此,如果您正在寻找小部件的特定信号,您只需转到该小部件帮助页面,然后点击"信号"导航栏中的链接。如果信号不存在,那么它必须在父类中。所以你点击"对象层次结构"链接,它将您发送到窗口小部件的继承树。您单击其父项并再次搜索该信号。
或者,您可以安装随Linux发行版一起安装的devhelp
帮助浏览器(或在MSYS2 for Windows中)。您可以在搜索字段中输入您要查找的符号名称,包括信号。