构造函数

GObjectObjectnew

声明 [源]

GObject*
g_object_new (
  GType object_type,
  const gchar* first_property_name,
  ...
)

描述 [源]

创建一个新实例的 GObject 子类型,并设置其属性。

构造参数(见 G_PARAM_CONSTRUCTG_PARAM_CONSTRUCT_ONLY),没有明确指定时会被设置为它们的默认值。对象的任何私有数据都将按照 ().

请注意,在C中,变量参数表中的小型整数类型会被提升到 gintguint,并按照相应的方式读取。在GLib当前支持的所有平台上,gint 是 32 位。这意味着您可以使用类型为 gint 的 C 表达式和类型为 gintguint 或更小的属性。具体来说,您可以使用整数文字与这些属性类型一起使用。

当使用类型为 gint64guint64 的属性类型时,您必须确保提供的值是 64 位。这意味着您应该使用转换或利用 G_GINT64_CONSTANTG_GUINT64_CONSTANT 宏。

同样,gfloat 被提升为 gdouble,因此您必须确保提供的值是 gdouble,即使属性类型为 gfloat

自GLib 2.72以来,确保所有 GObjects 都至少与最大的基本 GLib 类型(通常是 guint64gdouble)的对齐。如果您需要为 GObject 中的元素分配更大的对齐,您应该(对齐)在堆上分配它,或者安排为您的 GObject 设置适当的填充。

此构造函数不直接对语言绑定可用。

参数

object_type

类型: GType

要实例化的 GObject 子类型的类型 ID。

first_property_name

类型: const gchar*

第一个属性的名字。

数据由函数的调用者拥有。
值是一个以 NUL 结尾的 UTF-8 字符串。
...

类型: 

第一个属性的值,后面可以跟更多 name/value 对,最后跟 NULL

返回值

类型: GObject

object_type 的新实例。

函数的调用者获得数据的所有权,并负责释放它。