TPM 程序设计基础 3-1 :g_signal_connect() 函数
前言
GTK3 可利用信号/回调函数机制来处理窗口外部传来的事件、消息或信号。
对应的函数为:g_signal_connect()
。
g_signal_connect()
函数原型
gulong g_signal_connect
(
gpointer *object,
const gchar *name,
GCallback func,
gpointer func_data
);
参数说明
-
gpointer *object
:连接信号控件的指针(连接的对象),要作用到的实例,如想要操作的窗口、按钮等。 -
const gchar *name
:信号名称。课设程序中只用到的信号名称:
"activate"
:初始化时发送到信号。"clicked"
:触发时,常用于自定义按钮。"delete_event"
:用于点击窗口右上角的关闭按钮,关闭窗口时。
-
GCallback func
:回调函数。-
一般要求的回调函数格式:
static void <函数名> (GtkWidget *button , gpointer data) { ...... }
-
-
gpointer func_data
:传递给回调函数的参数,传递给上述格式中的 `` 参数。由于它的数据类型是 `` ,无法直接与 C 语言默认数据类型比较。
GTK3 提供了整型与指针类型间转换的宏:
GINT_TO_POINTER(a):将int型转换成gpointer类型 GPOINTER_TO_INT(a):将gpointer类型转换成int型 GUINT_TO_POINTER(a):将uint类型转换成gpointer类型 GPOINTER_TO_UINT(a):将gpointer类型转换成整型
- 更多请参阅:glib 简介 。