首頁 / LinuxDev / GTK+ 2.0 教學-深入探索信號處理函式

GTK+ 2.0 教學-深入探索信號處理函式

讓我們來看一下函式 _signal_connect() 的宣告。

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

注意到傳回值的型別 gulong 了嗎?這是一個識別你的回呼函式的標籤。前面講過,每個信號和每個物件可以有多個回呼函式,並且它們會按設置的順序依次運行。

利用這個標籤,你可以用下面的函式從列表中刪除這個回呼:

void g_signal_handler_disconnect( gpointer object, gulong id );

所以,通過傳遞你想在上面刪除處理函式的元件,以及某個 signal_connect 函式傳回的標籤,你就可以中斷一個信號處理函式的連接。

你也可以用 g_signal_handler_block() 和 g_signal_handler_unblock() 這類函式來暫時斷開信號處理函式的連接。

void g_signal_handler_block( gpointer object, gulong id );
void g_signal_handlers_block_by_func( gpointer object, GCallback func, gpointer data );
void g_signal_handler_unblock( gpointer object, gulong id );
void g_signal_handlers_unblock_by_func( gpointer object, GCallback func, gpointer data );
Print Friendly, PDF & Email
馬上成為工作達人的Fans

About ㄚ琪

工作達人Fun Taiwan的創辦者及總編,可以在這裡更認識他。

One comment

發表迴響

你的電子郵件位址並不會被公開。 Required fields are marked *

*

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Scroll To Top