C语言 GTK:回调函数签名概述

rwqw0loc  于 2023-02-15  发布在  其他
关注(0)|答案(2)|浏览(152)

在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);
    ...
}

回调函数的签名取决于信号或事件的类型。我正在寻找这些签名的简要概述,我在GTK+ 2.0 tutorial中找到了chapter about signals。但是,它似乎缺少GtkTreeview信号的回调签名,如row-activatedselect-cursor-row等。
是否有其他来源描述了 all 回调签名的正确实现,最好是简明扼要的概述,而不是分散在几个章节中?

y53ybaqx

y53ybaqx1#

您应该检查Gtk+ 2 Reference Manual
例如,示例中连接的销毁信号来自GtkWindow父类之一GtkObject
“摧毁”信号
void user_function (GtkObject *object, gpointer user_data)
检查相关信号和各自原型的树、列表控件:
https://developer-old.gnome.org/gtk2/stable/TreeWidgetObjects.html
注意:父类并不意味着多重继承,只是继承层次结构中上面的一个类。

tpgth1q7

tpgth1q72#

你需要学习如何使用官方帮助。在每个小部件帮助页面的顶部都有一个导航栏。在那里你可以直接链接到信号、对象层次结构(父类)等。
所以如果你要为一个小部件寻找一个特定的信号,你只要去到那个小部件的帮助页面,然后点击导航栏中的“signals”链接。如果信号不在那里,那么它一定在一个父类中。所以你点击“object hierarchy”链接,它会把你带到小部件的继承树。你点击它的父类,然后再次搜索信号。
或者,您也可以安装Linux发行版附带的devhelp帮助浏览器(或Windows版MSYS2),其中有一个搜索字段,您只需输入要查找的符号名称,包括信号。

相关问题