学习图形界面开发,肯定离不开帮助文档的使用,因为它不像C语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必要去记,用到什么就去帮助文档查看用法。


我们使用GTK帮助文档,主要分为这么几步:

1)查看所用控件的相应接口(功能,参数,返回值)

2)查看控件的继承关系( 继承过来的接口,继承过来的信号 )

3)查看控件的信号(主要查看信号所对应回调函数的写法)


1)查看所用控件的相应接口(功能,参数,返回值)

查看所用控件的相应接口( 本身的接口,继承过来的接口 ),主要是为了查看这个接口如何使用,包括函数的功能,参数,返回值。


下面我们以按钮( GtkButton )为例:

a) 可以通过接口名字查询,如 gtk_button_new_with_label

GTK帮助文档的使用_帮助文档


GTK帮助文档的使用_GTK入门学习_02


b) 可以通过控件类型名字查询,如 gktbutton (不区分大小写)

GTK帮助文档的使用_帮助文档

GTK帮助文档的使用_回调函数_04


右边就是控件的相应内容:

GTK帮助文档的使用_帮助文档_05


控件本身的接口:

GTK帮助文档的使用_控件_06


点击所查看的控件接口:

GTK帮助文档的使用_回调函数_07


查看接口的功能,参数,返回值:

GTK帮助文档的使用_GTK_08


GtkWidget *button = gkt_button_new_with_label("^_^");

我们还这么操作过按钮:

gtk_widget_show( button ); // 显示按钮

gtk_widget_set_size_request( button, 150 , 100) // 设置按钮大小


但是,我们查看控件(GtkButton)接口的时候,发现,它的本身接口都是gtk_button_开头的接口,我们没有看到gtk_widget_开头的接口,这时候我们就要查看控件(GtkButton)的继承关系,看它把哪些接口继承过来。


2)查看控件的继承关系( 继承过来的接口,继承过来的信号 )

继承我们可以理解为现实生活中的财产继承,如,我本身有些钱,这些钱是我的,我可以随便用,但是,同时我继承我父母的钱,那相当于他们的钱也间接给了我,这样的话,我就有两份钱,一份我自己本人的,一份是继承过来,我都可以用。

控件本身就有属于自己的接口,但是,它还继承别人的,这样它相当于有2套接口,本身的,继承的,都能用。

GTK帮助文档的使用_GTK入门学习_09



按钮的继承关系:

GTK帮助文档的使用_回调函数_10


这里需要注意的是,除了接口可以继承,信号也是可以继承的。

GTK帮助文档的使用_控件_11

按钮本身的信号:

GTK帮助文档的使用_GTK_12


继承过来的信号:

GTK帮助文档的使用_回调函数_13


3)查看控件的信号(主要查看信号所对应回调函数的写法)

找到控件所对应的信号:

GTK帮助文档的使用_控件_11

GTK帮助文档的使用_GTK_12

GTK帮助文档的使用_帮助文档_16

GTK帮助文档的使用_GTK入门学习_17


如:

GTK帮助文档的使用_控件_18


处理信号时,除了本身信号以外,别忘了,还有继承信号,根据需要来选择。譬如,事件信号,使用的都是从GtkWidget继承过来的信号,如处理窗口的点击事件。

GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);  // 创建窗口

gtk_widget_add_events(window, GDK_BUTTON_PRESS_MASK); // 接受鼠标事件

g_signal_connect(window, "button-press-event", G_CALLBACK(deal_mouse_press), NULL); // 处理"button-press-event"信号


信号"button-press-event"不是GtkWindow本身的信号,是从GtkWidget继承过来的信号。回调函数怎么写,查看方法和上面的是一样的,这里主要说一下,事件信号回调函数参数里有个 事件属性 的参数。

GTK帮助文档的使用_控件_19


gboolean fun(GtkWidget *w, GdkEvent *e, gpointer data)

{

// 参数GdkEvent,常直接写成GdkEventButton,

// 这样后期使用则不需要转换,代表鼠标事件

// GdkEvent * 相当于事件的万能指针,使用时候转换为所需要的类型

}

GdkEventButton是一个结构体,它保存着用户操作鼠标的状态,里面有哪些成员呢?我们也是可以查看的。

GTK帮助文档的使用_帮助文档_20

GTK帮助文档的使用_帮助文档_21

GTK帮助文档的使用_帮助文档_22

GTK帮助文档的使用_帮助文档_23

e->x, e->y 指点击窗口的坐标值,e->button可以判断鼠标哪个键按下。


这里需要注意,有些回调函数比较特别,我们找不到它所对应的信号,如“定时器”,这时候我们如何确定它的回调函数呢?


查询这个接口的用法:

GTK帮助文档的使用_帮助文档_24


找到这个接口,点击这个参数:

GTK帮助文档的使用_帮助文档_25


进去后,就是其回调函数的写法:

GTK帮助文档的使用_控件_26