接口
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