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类型转换成整型
    

作者:Yogile

出处:https://www.cnblogs.com/Yogile/p/12809530.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Yogile  阅读(1629)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题