📄 x398.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"><HTML><HEAD><TITLE>深入探索信号处理函数</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="GTK+ 2.0 教程"HREF="book1.html"><LINKREL="UP"TITLE="继续"HREF="c389.html"><LINKREL="PREVIOUS"TITLE="继续"HREF="c389.html"><LINKREL="NEXT"TITLE="改进了的 Hello World"HREF="x408.html"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">GTK+ 2.0 教程</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="c389.html"ACCESSKEY="P"><<< Previous</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">继续</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="x408.html"ACCESSKEY="N">Next >>></A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="SEC-MOREONSIGNALHANDLERS">深入探索信号处理函数</H1><P>让我们来看一下函数 gtk_signal_connect() 的声明。</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">gulong g_signal_connect( gpointer object, const gchar *name, GCallback func, gpointer func_data );</PRE></TD></TR></TABLE><P>注意到返回值的类型 gulong 了吗?这是一个识别你的回调函数的标识。前面讲过,每个信号和每个对象可以有多个回调函数,并且它们会按设置的顺序依次运行。</P><P>利用这个标识,你可以用下面的函数从列表中删除这个回调:</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">void g_signal_handler_disconnect( gpointer object, gulong id );</PRE></TD></TR></TABLE><P>所以,通过传递你想在上面删除处理函数的构件,以及某个 signal_connect 函数返回的标识,你就可以中断一个信号处理函数的连接。</P><P>你也可以用 g_signal_handler_block() 和 g_signal_handler_unblock() 这类函数来暂时断开信号处理函数的连接。</P><TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><PRECLASS="PROGRAMLISTING">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 );</PRE></TD></TR></TABLE></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="c389.html"ACCESSKEY="P"><<< Previous</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="book1.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="x408.html"ACCESSKEY="N">Next >>></A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">继续</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="c389.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">改进了的 Hello World</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -