2016-09-16 22 views
0

我想从GValue获得GdkRGBA,但我无法使用这种类型初始化GValueInit GValue结构

我尝试下面的代码:

GValue value; 
g_value_init(value, G_TYPE_OBJECT); 
gtk_style_context_get_property(style_context, "color", STATE_FLAG_NORMAL, &value); 

,但我得到了以下错误:

cannot initialize GValue with type 'GdkRGBA', the value has already been initialized as 'GObject'

我试过很多其他G_TYPE_*的,但我得到一个类似的错误。

如何使用GdkRGBA类型初始化GValue

回答

1

尝试删除该错误信息判断调用g_value_init完全—似乎gtk_style_context_get_property要初始化自身的GValue

此外,我注意到有a separate method defined on GtkStyleContext专门用于检索前景色,所以这可能是合适的(或优选)替代:

GdkRGBA color; 
gtk_style_context_get_color(style_context, GTK_STATE_FLAG_NORMAL, &color);