【问题标题】:GTK/GObject detailed_signal parameterGTK/GObject detail_signal 参数
【发布时间】:2013-02-02 19:05:55
【问题描述】:

在 GObject 参考手册中,它表示对于一个函数:

   g_signal_connect(instance, detailed_signal, c_handler, data)

需要 "signal-name::detail" 形式的 detailed_signal 字符串参数。我对此的初步理解是有预定义的信号详细信息要传入。如果是这种情况,我在哪里可以找到这些的列表?如果不是,那它到底是什么意思,因为手册并没有让这太明显。

【问题讨论】:

    标签: c gtk gobject


    【解决方案1】:

    信号名称的::detail 部分是可选的。如果信号采用详细参数,那么它会在信号的文档中说明。否则你可以忽略它。

    我知道的唯一实际使用详细参数的信号是GObjectnotify 信号。每当对象上的 any 属性发生更改时,不带细节的notify 信号就会触发,因此它相当无用。但是如果你连接到notify::visible 信号,那么只要对象的visible 属性发生变化,它就会触发。

    【讨论】:

      【解决方案2】:

      除非最近情况发生了很大变化,否则没有完整的官方信号列表。预定义的信号完全取决于您使用的技术。

      您可以查看正在使用的 GObject 实例类的在线文档。例如,如果您正在使用GtkButton,您可以在线查找它并发现它发出六个信号(激活、单击、进入、离开、按下、释放)。 GtkButton 是从 GtkContainer 派生的,它还发出几个可能由 GtkButton 发出的记录信号。而 GtkContainer 是从 GtkWidget 派生的,它会发出许多记录在案的信号,这些信号可能会被 GtkButton 发出。

      如果您发现一个对象没有发出您期望的某种信号,您还可以查看该对象的源代码,因为有时对象会发出未记录的信号,

      【讨论】:

        猜你喜欢
        • 2017-10-28
        • 2012-05-17
        • 2012-11-08
        • 1970-01-01
        • 1970-01-01
        • 2011-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多