分享

GTK:如何让你的程序正常退出?

 217小月月坑 2015-02-06
前面创建的窗口只能关闭,但是不能让程序正常退出,那么如何让你的程序正常退出呢?
首先,我们需要能使用用程序结束的函数:
结束应用程序

1.

名称:

gtk_main_quit

功能

结束应用程序

头文件

#include <gtk/gtk.h>

函数原形

void gtk_main_quit(void);

参数

返回值

      

 

 

 

 

 

 

 

 

gtk_main_quit函数可以结束程序

若想要应用程序能够正常退出,仅仅有能使程序的函数是不够的,我们还需要了解几个概念:事件、信号、回调函数。
事件:用户对程序的操作,比如按一下鼠标、拖动窗口、按下窗口的按键等等。
信号:事件发生时,相应的构件将给应用程序的回呼函数提供信号
回调函数:当需要对信号进行处理时,需要用GTK+登记回调函数,并将它和构件联系在一起。构件可以登记回调函数,回调函数可与多个构件联系在一起。

GTK常用的回调函数有下面两个:

2.

名称:

g_signal_connect

功能

信号登记函数

头文件

#include <gtk/gtk.h>

函数原形

gulong g_signal_connect(gpointer *object,const gchar *name,GCallback func,gpointer data);

参数

object    发出信号的控件

name     信号名称

func      回调函数(对信号要采取的动作)

data      传给回调函数的数据

返回值

 

      

 

 

 

 

 

 

 

 

 

 

 

 

g_signal_connect用于登记一个GTK+信号,其功能有点像普通信号登记函数signal.当某个空间发出信号,程序就会去执行由g_signal_connect登记的回调函数。

3.

名称:

g_signal_connect_swapped

功能

信号登记函数

头文件

#include <gtk/gtk.h>

函数原形

gulong g_signal_connect_swapped(gpointer *object,const gchar *name,GCallback func,gpointer *widget);

参数

object    发出信号的控件

name     信号名称

func      回调函数(对信号要采取的动作)

winget    传给回调函数的数据

返回值

 

 

 

 

 

 

 

 

 

 

 


g_signal_connect_swapped() 的作用和 g_signal_connect() 相同,只是回调函数只用

一个参数,一个指向 GTK 对象的指针。所以当使用这个函数连接信号时,回调函
数应该是这样的形式

void callback_func( GtkObject *object );

这个对象常是一个构件。然而我们通常不用函数 g_signal_connect_swapped() 设
置连接。它们常被用在只接受一个单独的构件或者对象的回调函数中作为参数,如
同我们的 helloworld 示例中那样。

拥有两个设置信号连接函数的目的是简单的允许回调函数有不同数目的参数。
GTK 库中许多函数仅接受一个单独的构件指针作为其参数,所以对于这些函数你要
用 g_signal_connect_swapped(),然而对你自己定义的函数,你需要附加的数据
提供给你的回调函数。








 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多