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类型转换成整型
    
原文地址:https://www.cnblogs.com/Yogile/p/12809530.html