接口

GioAction

描述 [源]

interface Gio.Action : GObject.Object

GAction 代表一个单独命名的行动。

与行动交互的主要方式是可以使用 g_action_activate() 启动它。这会导致发出 'activate' 信号。一个激活有一个 GVariant 参数(可能为 NULL)。参数的正确类型由静态参数类型确定(在构造时给出)。

一个行动可以可选地有一个状态,在这种情况下,可以使用 g_action_change_state() 来设置状态。这个调用接受一个 GVariant。状态的正确类型由静态状态类型(在构造时给出)确定。

状态可能有一个与之关联的提示,指定其有效范围。

GAction 仅是上述所描述的行动概念的接口。存在各种行动的实现,包括 GSimpleAction

在所有情况下,实现类负责存储行动名称、参数类型、启用状态、可选状态类型以及状态和状态更改时发出适当的信号。实现者负责对 g_action_activate()g_action_change_state() 的调用进行过滤,以确保类型安全,状态处于启用状态。

GAction 来说,最有用的事情可能是在一个 GSimpleActionGroup 中使用它。

先决条件

为了实现 Action,您的类型必须继承自 GObject

函数

g_action_name_is_valid

检查 action_name 是否有效。

自从: 2.38

g_action_parse_detailed_name

将详细行动名称解析为其单独的名称和目标组件。

自从: 2.38

g_action_print_detailed_name

根据 action_nametarget_value 格式化详细行动名称。

自从: 2.38

实例方法

g_action_activate

激活操作。

自从: 2.28

g_action_change_state

请求将 action 的状态更改为 value

自:2.30

g_action_get_enabled

检查 action 是否当前启用。

自从: 2.28

g_action_get_name

查询 action 的名称。

自从: 2.28

g_action_get_parameter_type

查询在激活 action 时必须提供的参数类型。

自从: 2.28

g_action_get_state

查询 action 的当前状态。

自从: 2.28

g_action_get_state_hint

请求有关 action 状态有效值范围的提示。

自从: 2.28

g_action_get_state_type

查询 action 状态的类型。

自从: 2.28

属性

Gio.Action:enabled

如果 action 当前启用。

自从: 2.28

Gio.Action:name

操作的名称。这通常是为了在有 GActionGroup 后识别操作时有意义。它是不可变的。

自从: 2.28

Gio.Action:parameter-type

激活操作时必须提供的参数类型。这是不可变的,如果激活操作时不需要参数,则可能为 NULL

自从: 2.28

Gio.Action:state

操作的状态,或如果操作无状态,则为 NULL

自从: 2.28

Gio.Action:state-type

操作状态具有的 GVariantType,或如果操作无状态,则为 NULL。这是不可变的。

自从: 2.28

接口结构

struct GioActionInterface {
  GTypeInterface g_iface;
  const gchar* (* get_name) (
    GAction* action
  );
  const GVariantType* (* get_parameter_type) (
    GAction* action
  );
  const GVariantType* (* get_state_type) (
    GAction* action
  );
  GVariant* (* get_state_hint) (
    GAction* action
  );
  gboolean (* get_enabled) (
    GAction* action
  );
  GVariant* (* get_state) (
    GAction* action
  );
  void (* change_state) (
    GAction* action,
    GVariant* value
  );
  void (* activate) (
    GAction* action,
    GVariant* parameter
  );
  
}

GAction 的虚拟函数表。

接口成员
g_iface
GTypeInterface
 

无描述可用。

get_name
const gchar* (* get_name) (
    GAction* action
  )
 

g_action_get_name() 的虚拟函数指针。

get_parameter_type
const GVariantType* (* get_parameter_type) (
    GAction* action
  )
 

g_action_get_parameter_type() 的虚拟函数指针。

get_state_type
const GVariantType* (* get_state_type) (
    GAction* action
  )
 

g_action_get_state_type() 的虚拟函数指针。

get_state_hint
GVariant* (* get_state_hint) (
    GAction* action
  )
 

g_action_get_state_hint() 的虚拟函数指针。

get_enabled
gboolean (* get_enabled) (
    GAction* action
  )
 

g_action_get_enabled() 的虚拟函数指针。

get_state
GVariant* (* get_state) (
    GAction* action
  )
 

g_action_get_state() 的虚拟函数指针。

change_state
void (* change_state) (
    GAction* action,
    GVariant* value
  )
 

g_action_change_state() 的虚拟函数指针。

activate
void (* activate) (
    GAction* action,
    GVariant* parameter
  )
 

g_action_activate() 的虚拟函数指针。注意",GAction 没有‘activate’信号,但它的实现可能有一个。

虚拟方法

Gio.Action.activate

激活操作。

自从: 2.28

Gio.Action.change_state

请求将 action 的状态更改为 value

自:2.30

Gio.Action.get_enabled

检查 action 是否当前启用。

自从: 2.28

Gio.Action.get_name

查询 action 的名称。

自从: 2.28

Gio.Action.get_parameter_type

查询在激活 action 时必须提供的参数类型。

自从: 2.28

Gio.Action.get_state

查询 action 的当前状态。

自从: 2.28

Gio.Action.get_state_hint

请求有关 action 状态有效值范围的提示。

自从: 2.28

Gio.Action.get_state_type

查询 action 状态的类型。

自从: 2.28