我是靠谱客的博主 激昂毛巾,这篇文章主要介绍g_signal_connect,现在分享给大家,希望可以做个参考。

信号注册函数:

gulong g_signal_connect( 

gpointer instance,

const gchar *detailed_signal,

GCallback c_handler,

gpointer data );

instance:信号发出者,可以认为我们操作的控件,如按下按钮,这个就为按钮指针

detailed_signal:信号标志,如"pressed"

c_handler:回调函数的名称,需要用G_CALLBACK()进行转换

data:给回调函数传的参数,gpointer 相当于C语言的 void *

返回值:注册函数的标志

如:

g_signal_connect(button, "pressed",G_CALLBACK(callback), NULL);

当按下button按钮时,就会自动调用回调函数callback(相当于处理中断任务),回调函数callback可以是任意函数,函数名字我们根据需要自行命名,如果不是库函数,我们还得定义这个回调函数,这里需要注意的是,回调函数的写法(返回值,参数),不是我们想怎么写就怎么写,帮助文档里已经规定好了回调函数应该如何写,如果不按规定来写,可能产生意想不到的错误。


GSignal是GStreamer的一个重要部分。它会让你在你感兴趣的事情发生时收到通知。信号是通过名字来区分的,每个GObject都有它自己的信号。

       使用g_signal_connect()方法把“pad-added”信号和我们的源(uridecodebin)联系了起来,并且注册了一个回调函数。GStreamer把&data这个指针的内容传给回调函数,这样CustomData这个数据结构中的数据也就传递了过去。

      这个信号是有GstElement产生的,可以在相关的文档中找到或者用gst-inspect方法来查到。

最后

以上就是激昂毛巾最近收集整理的关于g_signal_connect的全部内容,更多相关g_signal_connect内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(123)

评论列表共有 0 条评论

立即
投稿
返回
顶部