Bonjour,

J'ai suivie le manuel pour créer un GObject avec des propriétés : https://www.freedesktop.org/software...roperties.html
J’essaie d'écouter le signal "notify::papa-number"
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
static void
on_event(GObject *obj, GParamSpec *pspec, gpointer user_data) {
    if (pspec) {
        g_print("on_event was emited by g_object_set_property()\n");
    } else {
        g_print("on_event was emited by g_signal_emit[_by_name]()\n");
    }
}
 
int
main (int argc, char *argv[])
{
    MamanBar *obj = maman_bar_new();
 
    g_object_connect(obj, "signal::notify::papa-number", G_CALLBACK(on_event), NULL, NULL);
    //g_signal_connect(obj, "notify::papa-number", G_CALLBACK(on_event), NULL);
 
    GValue value = G_VALUE_INIT;
    g_value_init(&value, G_TYPE_UCHAR);
    g_value_set_uchar(&value, 7);
    g_object_set_property(obj, "papa-number", &value);
 
    g_signal_emit_by_name(obj, "notify::papa-number"/*, pspec */, NULL);//  Why, in on_event, parameter pspec of GParamSpec is null
 
    return 0;
}
A l'execution, j'obtiens :
Code output : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
on_event was emited by g_object_set_property()
on_event was emited by g_signal_emit[_by_name]

Pouvez-vous m'expliquer pourquoi le paramètre pspec est nul quand j'utilise g_signal_emit ? Est-ce un bug de Glib 2.56.4 ? Une incompréhension de ma part ?

Cdlt,