如何从gtk-notify-signal处理程序获取以前的值?

时间:2014-01-07 15:21:54

标签: gtk

例如,

   g_signal_connect(G_OBJECT(window), "notify::title", G_CALLBACK(onTitleChanged), NULL);

void onTitleChanged(GtkWidget* widget,
                    GParamSpec* property,
                    gpointer data)
{
    g_message("%s is changed, the new value is %s\n", property->name, gtk_window_get_title(GTK_WINDOW(widget)));
}

如何获取通知信号处理程序(onTitleChanged)中的上一个(旧)标题值?

感谢。

1 个答案:

答案 0 :(得分:1)

GObject无法提供,因此您必须在应用中缓存当前值。

安全的方法是更新通知处理程序末尾的缓存值 - 但根据您的使用情况,您可能还需要初始化值(当然必须记住在必要时分配/释放值是一个字符串)。