例如,
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)中的上一个(旧)标题值?
感谢。
答案 0 :(得分:1)
GObject无法提供,因此您必须在应用中缓存当前值。
安全的方法是更新通知处理程序末尾的缓存值 - 但根据您的使用情况,您可能还需要初始化值(当然必须记住在必要时分配/释放值是一个字符串)。