方法
GObjectObjectnotify_by_pspec
自:2.26
声明 [源]
void
g_object_notify_by_pspec (
GObject* object,
GParamSpec* pspec
)
描述 [源]
向 object
中指定由 pspec
定义的属性发出“notify”信号。
此函数省略了属性名查找,因此比 g_object_notify() 更快。
避免在注册属性的类中使用 g_object_notify() 并使用 g_object_notify_by_pspec(),一种方法是将使用 g_object_class_install_property() 的 GParamSpec 存储在一个静态数组中,例如:
typedef enum
{
PROP_FOO = 1,
PROP_LAST
} MyObjectProperty;
static GParamSpec *properties[PROP_LAST];
static void
my_object_class_init (MyObjectClass *klass)
{
properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
0, 100,
50,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
g_object_class_install_property (gobject_class,
PROP_FOO,
properties[PROP_FOO]);
}
然后使用以下方式通知“foo”属性的变化:
g_object_notify_by_pspec (self, properties[PROP_FOO]);
自:2.26
参数
pspec
-
类型:
GParamSpec
object
类中安装的属性的GParamSpec
。此数据由方法的调用者持有。