作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在GtkCellRendererText上设置“ellipsize”枚举属性对象。
我尝试按如下方式使用g_object_set_property
:
GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
GValue val = G_VALUE_INIT;
g_value_init (&val, G_TYPE_ENUM);
g_value_set_enum (&val, PANGO_ELLIPSIZE_END);
g_object_set_property (G_OBJECT(renderer), "ellipsize", &val);
但是,我在运行时收到错误消息:
(infog:27114): GLib-GObject-WARNING **: 12:24:29.848: ../../../../gobject/gvalue.c:188: cannot initialize GValue with type 'GEnum', this type is abstract with regards to GValue use, use a more specific (derived) type
如何获取 enum PangoEllipsizeMode
的类型 ID源自 G_TYPE_ENUM
?
最佳答案
您需要使用属性所需的枚举类型来初始化 GValue
容器。 G_TYPE_ENUM
是通用的抽象枚举类型。
GtkCellRendererText
的“ellipsize”属性需要一个 PangoEllipsizeMode
枚举值,其 GType 为 PANGO_TYPE_ELLIPSIZE_MODE
。
GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
GValue val = G_VALUE_INIT;
g_value_init (&val, PANGO_TYPE_ELLIPSIZE_MODE);
g_value_set_enum (&val, PANGO_ELLIPSIZE_END);
g_object_set_property (G_OBJECT(renderer), "ellipsize", &val);
// Always unset your value to release any memory that may be associated with it
g_value_unset (&val);
关于gtk - 如何在 GLib 对象上设置枚举属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60063024/
我是一名优秀的程序员,十分优秀!