信号名称`somename'无效,例如`0x80c00b0'

时间:2012-09-16 22:32:59

标签: c gtk signals glib

我试图在inst之后在GtkWidget(GooCanvas)上注册一个新信号。 here我做了:

g_signal_new                         ("canvas_changed",
                                     G_TYPE_FROM_INSTANCE(canvas),
                                     G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                                     0,
                                     NULL, NULL,
                                     g_cclosure_marshal_VOID__POINTER,
                                     G_TYPE_NONE,
                                     1,
                                     G_TYPE_POINTER);

但是当我尝试在画布上发出信号时:

g_signal_emit_by_name(canvas, "changed2");

我收到错误:

signal name `changed2' is invalid for instance `0x80c00b0'

我不确定我做错了什么?我试过传递一些其他类型,但仍然没有结果?有人知道这里有什么问题吗?

感谢。

1 个答案:

答案 0 :(得分:3)

你试过这个吗?

g_signal_emit_by_name(canvas, "canvas_changed");