接口
GioIcon
说明 [src]
interface Gio.Icon : GObject.Object
GIcon
是图标的最小接口。它提供了用于检查两个图标是否相等、散列图标以及将图标序列化为字符串并从中进行反序列化的函数。
GIcon
不提供图标的实际位图,因为这超出了 GIO 的范围,但是 GIcon
的实现可能包含图标的名称(请参见 GThemedIcon
)或图标的路径(请参见 GLoadableIcon
)。
要获取 GIcon
的散列,请参见 g_icon_hash()
。
要检查两个 GIcon
是否相等,请参见 g_icon_equal()
。
若要序列化 GIcon
,请使用 g_icon_serialize()
和 g_icon_deserialize()
。
如果您想使用 GIcon
(例如,在工具包中),您必须准备好处理至少以下三种情况:GLoadableIcon
、GThemedIcon
和 GEmblemedIcon
。为其他情况(比如直接处理 GdkPixbuf
)建立快速路径也有一定道理,但是 GIO 之外的所有兼容的 GIcon
实现都必须实现 GLoadableIcon
。
如果您的应用程序或库提供一个或多个 GIcon
实现,您需要确保您的新实现也实现 GLoadableIcon
。此外,您必须提供 g_icon_serialize()
的一个实现,其提供的结果会被 g_icon_deserialize()
理解,从而生成内置图标类型之一。
前提条件
为了实现 Icon,您的类型必须继承自GObject
。
实例方法
g_icon_serialize
将 GIcon
序列化到 GVariant
中。可以通过调用 g_icon_deserialize()
对返回值反向获取等效的 GIcon
。由于序列化会在可能的情况下避免使用原始图标数据,因此只有在同一台机器上的进程(相对于网络)和同一文件系统命名空间内传输 GVariant
时才合理。
自:2.38
g_icon_to_string
生成 icon
的文本表示形式,该表示形式可用于序列化,例如在将 icon
传递到其他进程或将它保存到持久存储时。使用 g_icon_new_for_string()
从返回的字符串里反向获取 icon
。
自:2.20
接口结构
struct GioIconIface {
GTypeInterface g_iface;
guint (* hash) (
GIcon* icon
);
gboolean (* equal) (
GIcon* icon1,
GIcon* icon2
);
gboolean (* to_tokens) (
GIcon* icon,
GPtrArray* tokens,
gint* out_version
);
GIcon* (* from_tokens) (
gchar** tokens,
gint num_tokens,
gint version,
GError** error
);
GVariant* (* serialize) (
GIcon* icon
);
}
GIconIface 用于为不同系统实现 GIcon 类型。请参阅 GThemedIcon
和 GLoadableIcon
,以了解如何实现此接口的示例。
接口成员
g_iface |
|
父接口。 |
|
hash |
|
给定 |
|
equal |
|
检查两个 |
|
to_tokens |
|
将 |
|
from_tokens |
|
通过令牌构造一个 |
|
serialize |
|
将 |
虚拟方法
Gio.Icon.serialize
将 GIcon
序列化到 GVariant
中。可以通过调用 g_icon_deserialize()
对返回值反向获取等效的 GIcon
。由于序列化会在可能的情况下避免使用原始图标数据,因此只有在同一台机器上的进程(相对于网络)和同一文件系统命名空间内传输 GVariant
时才合理。
自:2.38