命名空间

GObject – 2.0

基础类型系统和对象类

版本2.83.2
作者GLib开发团队
许可证LGPL-2.1或更新
网站https://gtk.org.cn
源码https://gitlab.gnome.org/GNOME/glib/

构建

C头文件glib-object.h
pkg-config文件gobject-2.0

依赖

GLib—2.0 基础实用库
浏览文档
GModule 用于动态加载模块的可移植API
浏览文档
GIO GObject接口和对象,网络,IPC和I/O
浏览文档

绑定

GObject实例(或源)和另一个GObject实例(或目标)上的另一个属性。

自2.26以来

BindingGroup

可以使用GBindingGroup来共同绑定对象中的多个属性。

自2.72以来

InitiallyUnowned

用于具有最初浮动引用的对象的类型。

Object

基础对象类型。

ParamSpec

GParamSpec封装了指定参数所需的元数据,例如GObject属性。

ParamSpecBoolean

一种包含布尔属性元数据的派生结构GParamSpec

ParamSpecBoxed

一种包含包裹属性元数据的派生结构GParamSpec

ParamSpecChar

一种包含字符属性元数据的派生结构GParamSpec

ParamSpecDouble

一种包含双精度属性元数据的派生结构GParamSpec

ParamSpecEnum

一种包含枚举属性元数据的派生结构GParamSpec

ParamSpecFlags

一种包含标志属性元数据的派生结构GParamSpec

ParamSpecFloat

一种包含浮点属性元数据的派生结构GParamSpec

ParamSpecGType

一种包含GType属性元数据的派生结构GParamSpec

自2.10以来

ParamSpecInt

一种包含整数属性元数据的派生结构GParamSpec

ParamSpecInt64

一种包含64位整数属性元数据的派生结构GParamSpec

ParamSpecLong

一种包含长整数属性元数据的派生结构GParamSpec

ParamSpecObject

一种包含对象属性元数据的派生结构GParamSpec

ParamSpecOverride

一种将操作重定向到其他类型的GParamSpec的派生结构GParamSpec

自2.4以来

ParamSpecParam

一种包含G_TYPE_PARAM属性元数据的派生结构GParamSpec

ParamSpecPointer

一种包含指针属性元数据的派生结构GParamSpec

ParamSpecString

一种包含字符串属性元数据的派生结构GParamSpec

ParamSpecUChar

一种包含无符号字符属性元数据的派生结构GParamSpec

ParamSpecUInt

一个包含无符号整型属性元数据的 derived structure,该结构为 GParamSpec。

ParamSpecUInt64

一个包含无符号 64 位整型属性元数据的 derived structure,该结构为 GParamSpec。

ParamSpecULong

一个包含无符号长整型属性元数据的 derived structure,该结构为 GParamSpec。

ParamSpecUnichar

一个包含 unichar(无符号整型)属性元数据的 derived structure,该结构为 GParamSpec。

ParamSpecValueArray

一个包含 GValueArray 属性元数据的 derived structure,该结构为 GParamSpec。

ParamSpecVariant

一个包含 GVariant 属性元数据的 derived structure,该结构为 GParamSpec。

自2.26以来

SignalGroup

GSignalGroup 管理一个 GObject 上的信号集合。

自2.72以来

TypeModule

GTypeModule 提供了简单的 GTypePlugin 接口实现。

接口

TypePlugin

一个接口,用于处理动态加载类型的生命周期。

结构

CClosure

GClosure 是一个针对 C 函数回调的 GClosure 的特殊化。

Closure

GClosure 代表由程序员提供的回调。

ClosureNotifyData

EnumClass

枚举类型的类包含有关其可能值的信息。

EnumValue

一个包含单个枚举值、其名称和其昵称的结构。

FlagsClass

标志类型的类包含有关其可能值的信息。

FlagsValue

一个包含单个标志值、其名称和其昵称的结构。

InterfaceInfo

一个结构,它提供特定于管理接口类型的信息,以供类型系统使用。

ObjectConstructParam

GObjectConstructParam 结构是一个辅助结构,用于将 GParamSpec/GValue 对传递给 GObjectClass 的构造函数。

Parameter

GParameter 结构是一个辅助结构,用于将参数名称/值对传递给 g_object_newv()。

已弃用:2.54 

ParamSpecPool

GParamSpecPool 维护着一个由所有者名称快速访问的 GParamSpecs 集合。

ParamSpecTypeInfo

此结构用于向类型系统提供初始化和析构(清理)参数类及其实例所需的信息。

SignalInvocationHint

GSignalInvocationHint 结构用于在信号发射期间传递额外的信息到回调。

SignalQuery

一个包含特定信号详细信息的结构。

TypeClass

一个不透明结构,用作所有类的基。

TypeFundamentalInfo

一个为类型系统提供信息以特定于管理基本类型而使用的结构。

TypeInfo

此结构用于向类型系统提供所需的信息以初始化和析构(清理)类型类及其实例。

TypeInstance

一个不透明结构,用作所有类型实例的基。

TypeInterface

一个不透明结构,用作所有接口类型的基。

TypePluginClass

类型系统使用 GTypePlugin 接口来处理动态加载类型的生命周期。

TypeQuery

包含特定类型信息的结构。

TypeValueTable

GTypeValueTable 提供了 GValue 实现所需的函数,用作类型值的确切容器。

Value

一个用于持有不同类型值的不透明结构。

ValueArray

一个 GValueArray 是一个用来存放泛型值数组的容器结构。

已弃用:2.32

WeakRef

包含对 GObject 的弱引用的结构。

联合体

TypeCValue

持有单个收集值的联合体。

别名

SignalCMarshaller

这是 marshaller 函数的签名,必要用于将参数值数组的信号输出封装到 C 语言回调调用中。

SignalCVaMarshaller

这是 va_list marshaller 函数的签名,在一些情况下可以作为可选的 marshaller 使用,避免将信号参数封装进 GValues。

Type

一个数值,代表已注册类型的唯一标识符。

位域

BindingFlags

传递给 g_object_bind_property()g_object_bind_property_full() 的标志。

自2.26以来

ConnectFlags

连接标志用于指定信号的连接行为。

IOCondition

ParamFlags

通过 GParamFlags 标志值,可以配置参数的一些方面。

SignalFlags

信号标志用于指定信号的行为。

SignalMatchType

匹配类型指定了 g_signal_handlers_block_matched()g_signal_handlers_unblock_matched()g_signal_handlers_disconnect_matched() 如何通过信号进行匹配。

TypeDebugFlags

这些标志曾经用于传递给 g_type_init_with_debug_flags(),该函数现已弃用。

已弃用:2.36

TypeFlags

用于检查或确定类型特性的位掩码。

TypeFundamentalFlags

用于检查或确定基础类型特定特征的位掩码。

回调

BaseFinalizeFunc

由类型系统使用的回调函数,用于最终化由相应的 GBaseInitFunc() 函数设置的自派生类型类结构部分。

BaseInitFunc

由类型系统使用的回调函数,用于为派生类型的类结构执行基础初始化。

BindingTransformFunc

一个被调用来转换 from_valueto_value 的函数。

自2.26以来

BoxedCopyFunc

由用户提供的函数,应生成传入的boxed结构的副本。

BoxedFreeFunc

由用户提供的函数,应释放传入的boxed结构。

Callback

在结构定义和函数签名中用于回调函数的类型。

ClassFinalizeFunc

由类型系统使用的回调函数,用于最终化一个类。

ClassInitFunc

由类型系统使用的回调函数,用于初始化特定类型的类。

ClosureMarshal

用于 marshaller 函数的类型。

ClosureNotify

用于在闭包上注册的各种通知回调的类型。

InstanceInitFunc

由类型系统使用的回调函数,用于初始化类型的新实例。

InterfaceFinalizeFunc

由类型系统使用的回调函数,用于最终化一个接口。

InterfaceInitFunc

由类型系统使用的回调函数,用于初始化一个新的接口。

ObjectFinalizeFunc

GObjectClassfinalize 函数的类型。

ObjectGetPropertyFunc

GObjectClassget_property 函数的类型。

ObjectSetPropertyFunc

GObjectClassset_property 函数的类型。

SignalAccumulator

信号累加器是一个特殊的回调函数,可以在信号发射过程中收集多个回调函数的返回值。

SignalEmissionHook

在信号发射时被调用的简单函数指针。

ToggleNotify

用于在切换引用的状态改变时进行通知的回调函数。

TypeClassCacheFunc

当类的引用计数降至零时被调用的回调函数。

TypeInterfaceCheckFunc

接口虚表初始化后的回调。

自2.4以来

TypePluginCompleteInterfaceInfo

GTypePluginClasscomplete_interface_info函数的类型。

TypePluginCompleteTypeInfo

GTypePluginClasscomplete_type_info函数的类型。

TypePluginUnuse

GTypePluginClassunuse_plugin函数的类型。

TypePluginUse

GTypePluginClassuse_plugin函数的类型,该函数在被调用以增加plugin的使用次数。

TypeValueCollectFunc

此函数负责将收集自可变参数列表的值转换为可存储在GValue中的内容。

since: 2.78

TypeValueCopyFunc

GValue的内容复制到另一GValue

since: 2.78

TypeValueFreeFunc

释放给定值中的value->data数组中可能留下的任何旧内容。

since: 2.78

TypeValueInitFunc

通过设置value->data数组的字段来初始化值内容。

since: 2.78

TypeValueLCopyFunc

此函数负责将value内容存储到通过可变参数列表传递的参数中,这些参数根据lcopy_format被收集到collect_values中。

since: 2.78

TypeValuePeekPointerFunc

如果值内容适合放入指针,例如对象或字符串,则返回此指针,以便调用者可以查看当前内容。

since: 2.78

VaClosureMarshal

这是 va_list marshaller 函数的签名,在一些情况下可以作为可选的 marshaller 使用,避免将信号参数封装进 GValues。

ValueTransform

可以与g_value_register_transform_func()一起注册的值转换函数的类型。

WeakNotify

可以将GWeakNotify函数添加到对象中,作为在对象最终释放时被触发的事件。

函数

boxed_copy

提供boxed结构src_boxed的副本,该结构为boxed_type类型。

boxed_free

释放boxed结构boxed,该结构为boxed_type类型。

boxed_type_register_static

此函数创建一个新的具有名称name的boxed类型的G_TYPE_BOXED派生类型ID。

clear_object

清除对GObject的引用。

since: 2.28

clear_signal_handler

instance中断开处理程序,使其在连接到的信号的任何将来或当前发射期间都不会被调用。handler_id_ptr随后设置为零,这从不是有效的处理程序ID(参见g_signal_connect())。

since: 2.62

enum_complete_type_info

此函数应从GTypePlugin实现中的complete_type_info函数调用,如下例所示:

enum_get_value

返回给定值的GEnumValue

enum_get_value_by_name

按名称查找GEnumValue

enum_get_value_by_nick

按昵称查找GEnumValue

enum_register_static

将新的静态枚举类型注册为具有名称name

enum_to_string

以枚举的名称形式漂亮打印值。

since: 2.54

flags_complete_type_info

此函数应从GTypePlugin实现中的complete_type_info()函数调用,请参见上面g_enum_complete_type_info()的示例。

flags_get_first_value

返回在value中设置的第一GFlagsValue

flags_get_value_by_name

按名称查找GFlagsValue

flags_get_value_by_nick

按昵称查找GFlagsValue

flags_register_static

将新的静态标志类型注册为具有名称name

flags_to_string

|分隔的标志名称形式漂亮打印值,并按顺序排序。任何额外的位将以十六进制数字显示在末尾。

since: 2.54

gtype_get_type

param_spec_boolean

创建一个新的指定 G_TYPE_BOOLEAN 属性的 GParamSpecBoolean 实例。在许多情况下,使用 g_param_spec_enum() 创建枚举可能更合适,这样可以通过使用显式命名的值来提高代码的可读性,并且允许在将来添加更多值而不会破坏 API

param_spec_boxed

创建一个新的 GParamSpecBoxed 实例,指定一个 G_TYPE_BOXED 派生属性。

param_spec_char

创建一个新的 GParamSpecChar 实例,指定一个 G_TYPE_CHAR 属性。

param_spec_double

创建一个新的 GParamSpecDouble 实例,指定一个 G_TYPE_DOUBLE 属性。

param_spec_enum

创建一个新的 GParamSpecEnum 实例,指定一个 G_TYPE_ENUM 属性。

param_spec_flags

创建一个新的 GParamSpecFlags 实例,指定一个 G_TYPE_FLAGS 属性。

param_spec_float

创建一个新的 GParamSpecFloat 实例,指定一个 G_TYPE_FLOAT 属性。

param_spec_gtype

创建一个新的 GParamSpecGType 实例,指定一个 G_TYPE_GTYPE 属性。

自2.10以来

param_spec_int

创建一个新的 GParamSpecInt 实例,指定一个 G_TYPE_INT 属性。

param_spec_int64

创建一个新的 GParamSpecInt64 实例,指定一个 G_TYPE_INT64 属性。

param_spec_long

创建一个新的 GParamSpecLong 实例,指定一个 G_TYPE_LONG 属性。

param_spec_object

创建一个新的 GParamSpecBoxed 实例,指定一个 G_TYPE_OBJECT 派生属性。

param_spec_override

创建一个类型为 GParamSpecOverride 的新属性。这用于将操作指向另一个 paramspec,除非你正在实现类似于 GObject 的新基类型,否则将不会直接有用。

自2.4以来

param_spec_param

创建一个新的 GParamSpecParam 实例,指定一个 G_TYPE_PARAM 属性。

param_spec_pointer

创建一个新的 GParamSpecPointer 实例,指定一个指针属性。在可能的情况下,最好使用 g_param_spec_object()g_param_spec_boxed() 来公开内存管理信息。

param_spec_string

创建一个新的 GParamSpecString 实例。

param_spec_uchar

创建一个新的 GParamSpecUChar 实例,指定一个 G_TYPE_UCHAR 属性。

param_spec_uint

创建一个新的 GParamSpecUInt 实例,指定一个 G_TYPE_UINT 属性。

param_spec_uint64

创建一个新的 GParamSpecUInt64 实例,指定一个 G_TYPE_UINT64 属性。

param_spec_ulong

创建一个新的 GParamSpecULong 实例,指定一个 G_TYPE_ULONG 属性。

param_spec_unichar

创建一个新的 GParamSpecUnichar 实例,指定一个 G_TYPE_UINT 属性。此属性的 GValue 结构可通过 g_value_set_uint() 和 g_value_get_uint() 来访问。

param_spec_value_array

创建一个新的 GParamSpecValueArray 实例,指定一个 G_TYPE_VALUE_ARRAY 属性。由于 G_TYPE_VALUE_ARRAY 是一个 G_TYPE_BOXED 类型,因此此属性的 GValue 结构可以通过 g_value_set_boxed() 和 g_value_get_boxed() 来访问。

param_spec_variant

创建一个新的 GParamSpecVariant 实例,指定一个 GVariant 属性。

自2.26以来

param_type_register_static

name 注册为从 G_TYPE_PARAM 派生的新静态类型的名称。

param_value_convert

如果可能,将 src_value 转换为 dest_value,然后验证 dest_value,以确保其符合 pspec。如果 strict_validationTRUE,则此函数只有在转换后的 dest_value 没有修改的情况下符合 pspec 才会成功。

param_value_defaults

检查 value 是否包含在 pspec 中指定的默认值。

param_value_is_valid

返回value的内容是否符合由pspec设定的规范。

自2.74版本开始

param_value_set_default

value设置为pspec中指定的默认值。

param_value_validate

确保value的内容符合由pspec设定的规范。例如,一个GParamSpecInt可能要求存储在value中的整数不能小于-42,也不能大于+42。如果value中包含此范围之外的整数,则对其进行相应的修改,以确保结果值在范围-42 .. +42内。

param_values_cmp

根据pspec比较value1value2,如果value1被发现小于、等于或大于value2,则分别返回-1、0或+1。

pointer_type_register_static

为具有名称name的新指针类型创建一个新的G_TYPE_POINTER派生类型id。

signal_accumulator_first_wins

它是一个预定义的GSignalAccumulator,用于具有作为应用程序代码钩子以提供特定值的意图的信号。通常只需要一个这样的值,并且对于同一信号的多重处理并没有太多意义(除了在类结构中定义的默认处理程序的情况,在这种情况下,你通常希望信号连接覆盖类处理程序)。

since: 2.28

signal_accumulator_true_handled

它是一个预定义的GSignalAccumulator,用于返回布尔值的信号。此累加器给出的行为是,返回代码TRUE停止信号发射:不会有进一步的回调被调用,而返回代码FALSE允许发射继续。这里的想法是,返回代码TRUE表示回调处理了信号,并且不需要更多的处理。

自2.4以来

signal_add_emission_hook

为信号添加一个发射钩子,该钩子将在发射该信号的任何发射中调用。这对于没有设置G_SIGNAL_NO_HOOKS标志的信号是可能的。

signal_chain_from_overridden

调用信号的原始类闭包。此函数应该仅从被重载的类闭包中调用;参见g_signal_override_class_closure()g_signal_override_class_handler()

signal_chain_from_overridden_handler

调用信号的原始类闭包。此函数应该仅从被重载的类闭包中调用;参见g_signal_override_class_closure()g_signal_override_class_handler()

自2.18版本开始

signal_connect_closure

将闭包连接到特定对象的信号。

signal_connect_closure_by_id

将闭包连接到特定对象的信号。

signal_connect_data

GCallback函数连接到特定对象的信号。类似于g_signal_connect(),但允许提供用于数据的GClosureNotify,当信号处理程序断开连接且不再使用时将被调用。如果需要此函数的..._after()..._swapped()变体,则指定connect_flags

signal_connect_object

这与g_signal_connect_data()类似,但使用一个闭包,该闭包通过临时添加引用计数到gobject来确保在调用c_handlergobject存活。

signal_emit

发射信号。信号发射是同步进行的。此方法仅在所有处理程序被调用或信号发射被停止后才会返回控制。

signal_emit_by_name

发射信号。信号发射是同步进行的。此方法仅在所有处理程序被调用或信号发射被停止后才会返回控制。

signal_emit_valist

发射信号。信号发射是同步进行的。此方法仅在所有处理程序被调用或信号发射被停止后才会返回控制。

signal_emitv

发射信号。信号发射是同步进行的。此方法仅在所有处理程序被调用或信号发射被停止后才会返回控制。

signal_get_invocation_hint

返回实例内部最深层信号发射的调用提示。

signal_handler_block

阻止实例的处理器,使其在信号发射期间不被调用,除非再次解除阻止。因此,“阻止”信号处理器意味着临时禁用它。信号处理器必须在解除阻止的次数与之前阻止的次数正好相同后才会再次激活。

signal_handler_disconnect

将处理器从实例中断开连接,因此它不会在连接的信号的未来或正在进行的发射中被调用。`handler_id`变为无效并可重新使用。

signal_handler_find

查找第一个与某些选择标准匹配的信号处理器。标准掩码是GSignalMatchType标志的OR组合,标准值作为参数传递。匹配掩码必须非0才能成功匹配。如果没有找到处理器,则返回0。

signal_handler_is_connected

返回`handler_id`是否是连接到`instance`的处理器ID

signal_handler_unblock

撤销之前g_signal_handler_block()调用的影响。被阻止的处理器在信号发射期间会被跳过并且不会被调用,解除阻止(对于之前阻止的次数)将重新启用其“阻止”状态,因此处理器将被信号系统识别,并在未来的或正在进行的信号发射中被调用(由于处理器在信号发射被调用的顺序是确定的,未解除阻止的处理器的调用是否作为当前正在进行的发射的一部分取决于该发射已经进行到何种程度)。

signal_handlers_block_matched

阻止与某些选择标准匹配的实例上的所有处理器。

signal_handlers_destroy

销毁类型实例的所有信号处理器。此函数是GObject处置实现的详细内容,不应在类型系统之外使用。

signal_handlers_disconnect_matched

断开与某些选择标准匹配的实例上的所有处理器。

signal_handlers_unblock_matched

解除与某些选择标准匹配的实例上的所有处理器的阻止。

signal_has_handler_pending

返回是否有任何处理器连接到给定的信号ID和相关详细信息的`instance`。

signal_is_valid_name

验证信号名称。对于需要在运行时验证的动态生成的信号,这很有用,在实际上尝试创建它们之前。

since: 2.66

signal_list_ids

按ID列出由特定实例或接口类型创建的信号。有关信号的更多信息可以通过g_signal_query()获取。

signal_lookup

给定信号名称及其连接的对象类型,获取该信号的识别整数。通过数字发射信号比每次使用名称要快。

signal_name

给定信号的标识符,找到其名称。

signal_new

创建一个新信号。(这通常在类初始化器中完成。)

signal_new_class_handler

创建一个新信号。(这通常在类初始化器中完成。)

自2.18版本开始

signal_new_valist

创建一个新信号。(这通常在类初始化器中完成。)

signal_newv

创建一个新信号。(这通常在类初始化器中完成。)

signal_override_class_closure

为在instance_type的实例上发射的给定信号覆盖类句柄(即默认处理器)。instance_type必须是从属于信号类型派生出的类型。

signal_override_class_handler

覆盖给定信号在 instance_type 实例上的类闭包(即默认处理程序),其回调为 class_handlerinstance_type 必须是信号所属类型的派生类型。

自2.18版本开始

signal_parse_name

一个解析信号名称到其 signal_iddetail 元素的内部函数。

signal_query

查询信号系统以获取关于特定信号的高级信息。此函数将填充一个用户提供的结构以保存信号特定的信息。如果传入无效的信号 ID,则 GSignalQuerysignal_id 成员为 0。应将 GSignalQuery 结构中的所有成员视为常量,并保持不变。

signal_remove_emission_hook

删除一个发射钩子。

signal_set_va_marshaller

更改指定信号使用的 GSignalCVaMarshaller。这是一个特殊形式的marshaller,通常用于单个连接的信号处理程序的情况,可以避免 GValue 的开销。它的使用是可选的。

自:2.32

signal_stop_emission

停止信号的当前发射。

signal_stop_emission_by_name

停止信号的当前发射。

signal_type_cclosure_new

创建一个新的闭包,该闭包在接口或类类型识别为 itype 的类结构中的 struct_offset 偏移处调用函数。

source_set_closure

将源回调设置为 GClosure

source_set_dummy_callback

source 设置一个空回调。该回调什么都不做,如果源期望一个 #gboolean 返回值,它将返回 TRUE。(如果源期望任何其他类型的返回值,它将返回一个 0/NULL 值;这是 g_value_init() 为该类型初始化 GValue 的值。)

strdup_value_contents

返回一个新分配的字符串,描述 GValue 的内容。此函数的主要目的是描述用于调试输出的 GValue 内容,不同 GLib 版本中描述内容的方式可能会更改。

type_add_class_cache_func

在类引用计数从一变成零之前添加一个 GTypeClassCacheFunc 以进行调用。这可以用来防止类提前销毁。所有安装的 GTypeClassCacheFunc 函数将被链接,直到其中一个返回 TRUE。函数必须检查传入的类 ID,以确定它们是否实际上想要缓存此类型的类,因为所有类都通过同一个 GTypeClassCacheFunc 链路路由。

type_add_class_private

注册类结构的私有结构;当类分配时,类及其所有父类型的私有结构按顺序在公共结构相同的内存块中分配,并被初始化为零。

自:2.24

type_add_instance_private

type_add_interface_check

在初始化任何类的接口表之后添加一个函数(即 GInterfaceInfointerface_init 成员被调用之后)。

自2.4以来

type_add_interface_dynamic

interface_type 添加到动态 instance_type。使用由 plugin 指向的 GTypePlugin 结构中的信息用于管理关系。

type_add_interface_static

interface_type 添加到静态 instance_type。使用由 info 指向的 GInterfaceInfo 结构中的信息用于管理关系。

type_check_class_cast

type_check_class_is_a

type_check_instance

这是一个用于实现 G_TYPE_CHECK_INSTANCE() 宏的私有辅助函数。

type_check_instance_cast

type_check_instance_is_a

type_check_instance_is_fundamentally_a

type_check_is_value_type

type_check_value

type_check_value_holds

type_children

返回一个新分配并以空字符结尾的类型ID数组,列出type的子类型。

type_create_instance

如果type有效且可以实例化,则创建并初始化type的实例。类型系统仅对实例执行基本的分配和结构设置:实际的实例创建应通过类型的基本类型实现提供的函数完成。因此,g_type_create_instance()的使用仅限于基本类型的实现者。例如,应通过g_object_new()创建GObject层次结构的实例,而绝对不能直接通过g_type_create_instance()来创建,因为它不处理单例对象或对象构造等问题。

type_default_interface_peek

如果接口类型g_type目前正在使用,则返回其默认接口表。

自2.4以来

type_default_interface_ref

增加接口类型g_type的引用计数,并返回类型的默认接口表。

自2.4以来

type_default_interface_unref

减少与接口默认表相对应的类型的引用计数g_iface。如果是动态类型,而且没有人在使用接口并且所有引用都已释放,则将调用接口默认表的终结函数(GTypeInfoclass_finalize成员)。

自2.4以来

type_depth

返回传入类型的血统长度。这包括类型本身,所以例如,基本类型的深度是1。

type_ensure

确保指示的type已注册到类型系统中,并且已运行其_class_init()方法。

since: 2.34

type_free_instance

释放类型的实例,如果存在,则将其返回到类型的实例池。

type_from_name

根据给定的类型名称查找类型ID,如果没有在此名称下注册任何类型,则返回0(这是检查特定类型是否已注册的推荐方法)。

type_fundamental

内部函数,用于提取基本类型ID部分。使用G_TYPE_FUNDAMENTAL()代替。

type_fundamental_next

返回下一个可用的基本类型ID,用于通过g_type_register_fundamental()注册新的基本类型。返回的类型ID代表当前注册的最高基本类型标识符。

type_get_instance_count

返回特定类型分配的实例数量;这仅在GLib以调试支持构建并且设置了instance-count调试标志时(通过将GOBJECT_DEBUG变量设置为包含instance-count)可用。

since: 2.44

type_get_plugin

返回typeGTypePlugin结构。

type_get_qdata

获取使用g_type_set_qdata()先前附加到type的数据。

type_get_type_registration_serial

返回一个不可见的序列号,表示已注册的类型集合的状态。每次注册类型时,此序列号都会更改,这意味着您可以根据类型查找(如g_type_from_name())缓存信息,并且可以通过比较当前序列号与类型查找时的序列号来确定缓存是否仍然有效。

since: 2.36

type_init

此函数用于初始化类型系统。自GLib 2.36以来,类型系统自动初始化,此函数不执行任何操作。

已弃用:2.36

type_init_with_debug_flags

此函数用于使用调试标志初始化类型系统。自GLib 2.36以来,类型系统自动初始化,此函数不执行任何操作。

已弃用:2.36

type_interfaces

返回一个新分配并以空字符结尾的类型ID数组,列出type遵守的接口类型。

type_is_a

如果is_a_type是一个可派生的类型,则检查type是否是is_a_type的子类型。如果is_a_type是一个接口,则检查type是否遵守它。

type_name

获取分配给类型的独特名称。请注意,此函数(如所有其他 GType API)无法处理无效的类型 ID。《code>可以传递给此函数,也可以是任何其他有效注册的类型ID,但不应传递随机类型ID,否则可能会导致崩溃。

从类获取类型名称

从实例获取类型名称

获取下一个基类型

对于给定的 leaf_type 和包含在其祖先中的 root_type,返回是 root_type 的直接父类的类型。换句话说,此函数确定从 root_type 直接派生且也是 leaf_type 的基类的类型。给定一个根类型和一个叶类型,此函数可用于确定叶类型从根类型派生的类型和顺序。

获取父类型

返回传入类型的直接父类型。如果传入的类型没有父类型,即是一个基本类型,则返回0。

获取类型完全限定名

获取类型 ID 名称的对应 quark。

类型查询

查询类型系统以获取有关特定类型的有关信息。

动态注册类型

type_name 注册为从 parent_type 派生的新的动态类型的名称。类型系统使用 plugin 所指向的 GTypePlugin 结构体中包含的信息来管理类型及其实例(如果不是抽象的)。flags 的值确定类型的性质(例如,是否抽象)。

基本类型注册

type_id 注册为预定义标识符,type_name 注册为基本类型的名称。如果 type_id 已经注册,或者已经注册名为 type_name 的类型,则行为是未定义的。类型系统使用 info 所指向的 GTypeInfo 结构体和 finfo 所指向的 只能进行类型管理及其实例,flags 的值确定基本类型的其他特性。

静态注册类型

type_name 注册为从 parent_type 派生的新的静态类型的名称。类型系统使用 info 所指向的 GTypeInfo 结构体中包含的信息来管理类型及其实例(如果不是抽象的)。flags 的值确定类型的性质(例如,是否抽象)。

简单静态注册类型

type_name 注册为从 parent_type 派生的新的静态类型的名称。flags 的值确定类型的性质(例如,是否抽象)。通过填充一个 GTypeInfo 结构体并调用 g_type_register_static() 来实现。

自2.12以来

移除类缓存函数

移除先前安装的 GTypeClassCacheFunc。在调用 g_type_remove_class_cache_func() 时,cache_func 维护的缓存必须为空,以避免泄露。

移除接口检查

移除使用 g_type_add_interface_check() 添加的接口检查函数。

自2.4以来

类型设置 qdata

将任意数据附加到类型。

类型测试标志

获取变体的 gtype

函数宏

ADD_PRIVATE

一个方便的宏,用于简化向在 G_DEFINE_TYPE_WITH_CODE() 或 G_DEFINE_ABSTRACT_TYPE_WITH_CODE() 的 _C_ 部分中的新类型的实例添加私有数据。

since: 2.38

ADD_PRIVATE_DYNAMIC

一个方便的宏,用于简化向在 G_DEFINE_DYNAMIC_TYPE_EXTENDED() 的 _C_ 部分中的新动态类型的实例添加私有数据。

since: 2.38

断言最终化对象

断言objectNULL,然后使用g_object_unref()取消对其的一个引用,并断言它已被释放(即没有更多引用)。

since: 2.62

CALLBACK

将函数指针转换为GCallback

CCLOSURE_SWAP_DATA

检查是否应将GCClosure的用户数据作为回调的第一个参数传递。参见g_cclosure_new_swap()。

clear_weak_pointer

清除对GObject的弱引用。

since: 2.56

CLOSURE_N_NOTIFIERS

获取与闭包cl相关联的notifier的总数。

CLOSURE NEEDS MARSHAL

检查闭包是否仍需要marshaller。参见g_closure_set_marshal()。

DECLARE_DERIVABLE_TYPE

一个便利宏,用于输出类型头文件中通常的声明,该类型将是子类。

since: 2.44

DECLARE_FINAL_TYPE

一个便利宏,用于输出类型头文件中通常的声明,该类型在当前时间不应该被子类化。

since: 2.44

DECLARE_INTERFACE

一个便利宏,用于输出类型头文件中通常的声明,用于GInterface类型。

since: 2.44

DEFINE_ABSTRACT_TYPE

一个便利宏,用于类型实现。

自2.4以来

DEFINE_ABSTRACT_TYPE_WITH_CODE

一个便利宏,用于类型实现。

自2.4以来

DEFINE_ABSTRACT_TYPE_WITH_PRIVATE

类似于G_DEFINE_TYPE_WITH_PRIVATE(),但定义了一个抽象类型。

since: 2.38

DEFINE_BOXED_TYPE

一个便利宏,用于定义新的自定义boxed类型。

自2.26以来

DEFINE_BOXED_TYPE_WITH_CODE

一个便利宏,用于boxed类型的实现。

自2.26以来

DEFINE_DYNAMIC_TYPE

一个便利宏,用于动态类型实现,它声明了一个类初始化函数、一个实例初始化函数(有关这些信息,请参阅GTypeInfo)和一个名为t_n_parent_class的静态变量,指向父类。

since: 2.14

DEFINE_DYNAMIC_TYPE_EXTENDED

比G_DEFINE_DYNAMIC_TYPE()更通用的版本,允许指定GTypeFlags和自定义代码。

since: 2.14

DEFINE_ENUM_TYPE

一个便利宏,用于定义枚举类型。

自2.74版本开始

DEFINE_ENUM_VALUE

定义一个枚举值,并将其映射到一个“昵称”。

自2.74版本开始

DEFINE_FINAL_TYPE

一个便利宏,用于类型实现。

since: 2.70

DEFINE_FINAL_TYPE_WITH_CODE

一个便利宏,用于类型实现。

since: 2.70

DEFINE_FINAL_TYPE_WITH_PRIVATE

一个便利宏,用于类型实现。

since: 2.70

DEFINE_FLAGS_TYPE

一个便利宏,用于定义标志类型。

自2.74版本开始

DEFINE_INTERFACE

一个便利宏,用于GTypeInterface定义,它声明了一个默认的vtable初始化函数并定义了一个*_get_type()函数。

自:2.24

DEFINE_INTERFACE_WITH_CODE

一个便利宏,用于GTypeInterface定义。

自:2.24

DEFINE_POINTER_TYPE

一个便利宏,用于指针类型实现,它定义了一个type_name_get_type()函数来注册指针类型。

自2.26以来

DEFINE_POINTER_TYPE_WITH_CODE

一个便利宏,用于指针类型实现。类似于G_DEFINE_POINTER_TYPE(),但允许在type_name_get_type()函数中插入自定义代码。

自2.26以来

DEFINE_TYPE

一个便利宏,用于类型实现,它声明了一个类初始化函数、一个实例初始化函数(有关这些信息,请参阅GTypeInfo)和一个名为t_n_parent_class的静态变量,指向父类。此外,它定义了一个*_get_type()函数。请参阅G_DEFINE_TYPE_EXTENDED()的示例。

自2.4以来

DEFINE_TYPE_EXTENDED

最通用的便利宏,是以G_DEFINE_TYPE()等为基础的。

自2.4以来

DEFINE_TYPE_WITH_CODE

一个便利宏,用于类型实现。

自2.4以来

DEFINE_TYPE_WITH_PRIVATE

一个便利宏,用于类型实现,它声明了一个类初始化函数、一个实例初始化函数(有关这些信息,请参阅GTypeInfo),一个名为t_n_parent_class的静态变量,指向父类,并将私有实例数据添加到类型。

since: 2.38

DEPRECATED_ENUMERATOR_IN_2_26_FOR

DEPRECATEDenumerate rin_2_28_FOR

DEPRECATED_ENUMERATORIN_2_30_FOR

DEPRECATED_ENUMERATORIN_2_32_FOR

DEPRECATED_ENUMERATORIN_2_34_FOR

DEPRECATED_ENUMERATORIN_2_36_FOR

DEPRECATED_ENUMERATORIN_2_38_FOR

DEPRECATED_ENUMERATORIN_2_40_FOR

DEPRECATED_ENUMERATORIN_2_42_FOR

已在2.44版本中弃用的计数器

已在2.46版本中弃用的计数器

已在2.48版本中弃用的计数器

已在2.50版本中弃用的计数器

已在2.52版本中弃用的计数器

已在2.54版本中弃用的计数器

已在2.56版本中弃用的计数器

已在2.58版本中弃用的计数器

已在2.60版本中弃用的计数器

已在2.62版本中弃用的计数器

已在2.64版本中弃用的计数器

已在2.66版本中弃用的计数器

已在2.68版本中弃用的计数器

已在2.70版本中弃用的计数器

已在2.72版本中弃用的计数器

已在2.74版本中弃用的计数器

已在2.76版本中弃用的计数器

已在2.78版本中弃用的计数器

已在2.80版本中弃用的计数器

已在2.82版本中弃用的计数器

已在2.84版本中弃用的计数器

已弃用

在2.26版本中已弃用

在2.28版本中已弃用

在2.30版本中已弃用

在2.32版本中已弃用

在2.34版本中已弃用

在2.36版本中已弃用

在2.38版本中已弃用

在2.40版本中已弃用

在2.42版本中已弃用

在2.44版本中已弃用

在2.46版本中已弃用

在2.48版本中已弃用

在2.50版本中已弃用

在2.52版本中已弃用

在2.54版本中已弃用

在2.56版本中已弃用

在2.58版本中已弃用

在2.60版本中已弃用

在2.62版本中已弃用

在2.64版本中已弃用

在2.66版本中已弃用

在2.68版本中已弃用

在2.70版本中已弃用

在2.72版本中已弃用

在2.74版本中已弃用

在2.76版本中已弃用

在2.78版本中已弃用

在2.80版本中已弃用

在2.82版本中已弃用

在2.84版本中已弃用

在2.26版本中已弃用的宏

在2.28版本中已弃用的宏

在2.30版本中已弃用的宏

在2.32版本中已弃用的宏

在2.34版本中已弃用的宏

在2.36版本中已弃用的宏

在2.38版本中已弃用的宏

在2.40版本中已弃用的宏

在2.42版本中已弃用的宏

在2.44版本中已弃用的宏

在2.46版本中已弃用的宏

在2.48版本中已弃用的宏

在2.50版本中已弃用的宏

在2.52版本中已弃用的宏

在2.54版本中已弃用的宏

在2.56版本中已弃用的宏

在2.58版本中已弃用的宏

在2.60版本中已弃用的宏

在2.62版本中已弃用的宏

在2.64版本中已弃用的宏

在2.66版本中已弃用的宏

在2.68版本中已弃用的宏

在2.70版本中已弃用的宏

在2.72版本中已弃用的宏

在2.74版本中已弃用的宏

在2.76版本中已弃用的宏

在2.78版本中已弃用的宏

在2.80版本中已弃用的宏

在2.82版本中已弃用的宏

在2.84版本中已弃用的宏

在2.26版本中已弃用的类型

在2.28版本中已弃用的类型

在2.30版本中已弃用的类型

在2.32版本中已弃用的类型

在2.34版本中已弃用的类型

在2.36版本中已弃用的类型

在2.38版本中已弃用的类型

在2.40版本中已弃用的类型

在2.42版本中已弃用的类型

在2.44版本中已弃用的类型

在2.46版本中已弃用的类型

在2.48版本中已弃用的类型

在2.50版本中已弃用的类型

在2.52版本中已弃用的类型

在2.54版本中已弃用的类型

在2.56版本中已弃用的类型

在2.58版本中已弃用的类型

在2.60版本中已弃用的类型

在2.62版本中已弃用的类型

在2.64版本中已弃用的类型

在2.66版本中已弃用的类型

在2.68版本中已弃用的类型

在2.70版本中已弃用的类型

在2.72版本中已弃用的类型

在2.74版本中已弃用的类型

在2.76版本中已弃用的类型

在2.78版本中已弃用的类型

在2.80版本中已弃用的类型

在2.82版本中已弃用的类型

在2.84版本中已弃用的类型

枚举类类型

从一个指定的 GEnumClass 结构中获取类型标识符。

枚举类类型名称

从一个指定的 GEnumClass 结构中获取静态类型名称。

标志类类型

从一个指定的 GFlagsClass 结构中获取类型标识符。

标志类类型名称

从一个指定的 GFlagsClass 结构中获取静态类型名称。

实现接口

一个便利宏,用于简化在 G_DEFINE_TYPE_WITH_CODE() 或 G_DEFINE_ABSTRACT_TYPE_WITH_CODE() 的 _C_ 部分的接口添加。参见 G_DEFINE_TYPE_EXTENDED() 获取示例。

自2.4以来

实现接口动态

一个便利宏,用于简化在 G_DEFINE_DYNAMIC_TYPE_EXTENDED() 的 _C_ 部分的接口添加。

自:2.24

对象类名称

返回一个类结构的类型名称。

对象类类型

获取一个类结构的类型ID。

对象类型

获取对象类型ID。

对象类型名称

获取对象类型的名称。

对象警告无效属性ID

此宏应用于在 set_property()get_property() 实现中发出关于意外属性的标准化警告。

对象警告无效PSPEC

参数类型

GParamSpec 转换为 GParamSpecGType

自2.10以来

参数类型

检索此 pspecGType

参数类型名称

检索此 pspecGType 名称。

参数类型UCHAR

GParamSpec 实例转换为 GParamSpecUChar

参数类型UINT

GParamSpec 实例转换为 GParamSpecUInt

参数类型UINT64

GParamSpec 实例转换为 GParamSpecUInt64

参数类型ULONG

GParamSpec 实例转换为 GParamSpecULong

参数类型值类型

检索用于初始化此参数的 GValueGType

私有字段

TypeNameinst 私有数据结构中的 field_name 进行评估。

since: 2.38

私有字段指针

评估为指向 TypeNameinst 私有数据结构中的 field_name 的指针。

since: 2.38

私有偏移量

评估为实例私有数据结构中 TypeNamefield 的偏移量。

since: 2.38

设置对象

更新 GObject 指针以引用 new_object

since: 2.44

设置弱引用

更新指针以弱引用 new_object

since: 2.56

信号连接

GCallback 函数连接到特定对象的信号。

信号连接之后

GCallback 函数连接到特定对象的信号。

信号连接交换

GCallback 函数连接到特定对象的信号。

信号处理器按函数阻塞

阻止实例上所有匹配 funcdata 的处理器。

信号处理器按数据断开连接

在实例上断开所有匹配 data 的处理器。

自:2.32

信号处理器按函数和数据断开连接

在实例上断开所有匹配 funcdata 的处理器。

信号处理器按函数解锁

解锁实例上所有匹配 funcdata 的处理器。

检查类 Casting

检查 g_class 是否是 g_type 识别的类型类结构,如果不是则发出警告。返回将 g_class 转换为指向 c_type 的指针。 NULL 不是一个有效的类结构。

检查类类型

检查 g_class 是否是 g_type 识别的类型类结构。如果 g_classNULL,则返回 FALSE

检查实例

检查 instance 是否是一个有效的 GTypeInstance 结构,如果不是则发出警告并返回 FALSENULL 不是一个有效的 GTypeInstance

检查实例 Casting

检查 instance 是否是 g_type 识别的类型实例,如果不是则发出警告。返回将 instance 转换为指向 c_type 的指针。

检查实例基础类型

检查 instance 是否是 g_type 识别的基础类型实例。如果 instanceNULL,则返回 FALSE

检查实例类型

检查 instance 是否是 g_type 识别的类型实例。如果 instanceNULL,则返回 FALSE

检查值

检查 value 是否已初始化以保存值类型的值。

TYPE_CHECK_VALUE_TYPE

检查 value 是否已初始化以保存类型 g_type 的值。

TYPE_FROM_CLASS

从给定的 class 结构中获取类型标识符。

TYPE_FROM_INSTANCE

从给定的 instance 结构中获取类型标识符。

TYPE_FROM_INTERFACE

从给定的 interface 结构中获取类型标识符。

TYPE_FUNDAMENTAL

type 的祖先类型的根本类型。

TYPE_HAS_VALUE_TABLE

检查 type 是否具有 GTypeValueTable

TYPE_MAKE_FUNDAMENTAL

获取根本类型编号 x 的类型 ID

UNAVAILABLE

UNAVAILABLE_STATIC_INLINE

VALUE_COLLECT

va_list 中收集一个变量参数值。

VALUE_COLLECT_INIT

va_list 中收集一个变量参数值。

自:2.24

VALUE_COLLECT_INIT2

是 G_VALUE_COLLECT_INIT() 的一个变体,为调用者提供 GTypeValueTable

自2.74版本开始

VALUE_COLLECT_SKIP

跳过从 var_args 中类型为 _value_type 的一个参数。

VALUE_HOLDS

检查 value 是否包含(或包含)类型为 type 的值。此宏还将检查 value != NULL,如果检查失败,将发出警告。

VALUE_HOLDS_BOOLEAN

检查给定的 GValue 是否可以保存 G_TYPE_BOOLEAN 类型的值。

VALUE_HOLDS_BOXED

检查给定的 GValue 是否可以保存从 G_TYPE_BOXED 类型派生的值。

VALUE_HOLDS_CHAR

检查给定的 GValue 是否可以保存 G_TYPE_CHAR 类型的值。

VALUE_HOLDS_DOUBLE

检查给定的 GValue 是否可以保存 G_TYPE_DOUBLE 类型的值。

VALUE_HOLDS_ENUM

检查给定的 GValue 是否可以保存从 G_TYPE_ENUM 类型派生的值。

VALUE_HOLDS_FLAGS

检查给定的 GValue 是否可以保存从 G_TYPE_FLAGS 类型派生的值。

VALUE_HOLDS_FLOAT

检查给定的 GValue 是否可以保存 G_TYPE_FLOAT 类型的值。

VALUE_HOLDS_GTYPE

检查给定的 GValue 是否可以保存 G_TYPE_GTYPE 类型的值。

自2.12以来

VALUE_HOLDS_INT

检查给定的 GValue 是否可以保存 G_TYPE_INT 类型的值。

VALUE_HOLDS_INT64

检查给定的 GValue 是否可以保存 G_TYPE_INT64 类型的值。

VALUE_HOLDS_LONG

检查给定的 GValue 是否可以保存 G_TYPE_LONG 类型的值。

VALUE_HOLDS_OBJECT

检查给定的 GValue 是否可以保存从 G_TYPE_OBJECT 类型派生的值。

VALUE_HOLDS_PARAM

检查给定的 GValue 是否可以保存从 G_TYPE_PARAM 类型派生的值。

VALUE_HOLDS_POINTER

检查给定的 GValue 是否可以保存 G_TYPE_POINTER 类型的值。

VALUE_HOLDS_STRING

检查给定的 GValue 是否可以保存 G_TYPE_STRING 类型的值。

VALUE_HOLDS_UCHAR

检查给定的 GValue 是否可以保存 G_TYPE_UCHAR 类型的值。

VALUE_HOLDS_UINT

检查给定的 GValue 是否可以保存 G_TYPE_UINT 类型的值。

VALUE_HOLDS_UINT64

检查给定的 GValue 是否可以保存 G_TYPE_UINT64 类型的值。

VALUE_HOLDS_ULONG

检查给定的 GValue 是否可以保存 G_TYPE_ULONG 类型的值。

VALUE_HOLDS_VARIANT

检查给定的 GValue 是否可以保存 G_TYPE_VARIANT 类型的值。

自2.26以来

VALUE_LCOPY

将一个值的值存储到一个或多个从 va_list 中提取的参数位置。

VALUE_TYPE

获取 value 的类型标识符。

VALUE_TYPE_NAME

获取 value 的类型名称。

常量

PARAM_MASK

包含 GParamSpec.flags 中的保留位(用于 GLib)的掩码。

PARAM_STATIC_STRINGS

GParamFlags 的值别名,代表 G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB

PARAM_USER_SHIFT

用于将用户自定义标志存储在 GParamSpec.flags 中的最小位移计数,最大允许值为 10。

SIGNAL_FLAGS_MASK

用于所有 GSignalFlags 位的一个掩码。

SIGNAL_MATCH_MASK

用于所有 GSignalMatchType 位的一个掩码。

TYPE_FLAG_RESERVED_ID_BIT

类型编号中的一个位,预计保持未改动。

TYPE_FUNDAMENTAL_MAX

一个整数常量,表示在编译时分配的标识符的数量。

TYPE_FUNDAMENTAL_SHIFT

将数字转换为类型 ID 时使用的位移值。

TYPE_RESERVED_BSE_FIRST

为 BSE 保留 G_TYPE_MAKE_FUNDAMENTAL() 创建新基本类型 ID 的第一个基本类型号码。

TYPE_RESERVED_BSE_LAST

为 BSE 保留的最后基本类型号码。

TYPE_RESERVED_GLIB_FIRST

为 GLib 保留 G_TYPE_MAKE_FUNDAMENTAL() 创建新基本类型 ID 的第一个基本类型号码。

TYPE_RESERVED_GLIB_LAST

为 GLib 保留的最后基本类型号码。

TYPE_RESERVED_USER_FIRST

可用于创建新的基本类型 ID 的第一个可用的基本类型号码,通过使用 G_TYPE_MAKE_FUNDAMENTAL()

VALUE_COLLECT_FORMAT_MAX_LENGTH

单个 GValue 可收集的最大 GTypeCValues 数量。

VALUE_INTERNED_STRING

对于字符串值,表示包含的字符串是规范化的,将在整个进程期间存在。请参阅 g_value_set_interned_string()。

VALUE_NOCOPY_CONTENTS

如果传递到 G_VALUE_COLLECT(),分配的数据不会复制,而是使用原样。这不影响对象等引用计数类型。这不影响 g_value_copy() 的使用,如果数据不是引用计数,将会复制。