类
GiPropertyAction
自从:2.38
描述 [源位置]
final class Gio.PropertyAction : GObject.Object
implements Gio.Action {
/* No available fields */
}
GPropertyAction
是一种获取 并以状态值反映和控制系统属性值的机制。
操作的状态将与属性值相对应。更改它将更改属性(假设请求的值符合在 GParamSpec
中指定的要求)。
目前仅支持最常见的类型。布尔值映射为布尔值,字符串映射为字符串,有符号/无符号整数映射为 int32/uint32,浮点数和双精度浮点数映射为 double。
如果属性是枚举类型,则状态将是字符串类型的,并将根据 GEnumValue
表自动在枚举值和 'nick' 字符串之间进行转换。
目前不支持标志类型。
不支持对象类型、boxed 类型和指针类型的属性,可能永远不会支持。
不支持 GVariant
类型属性。
如果属性是布尔值的,则操作将没有参数类型,激活操作(不带参数)将切换属性的值。
在所有其他情况下,参数类型将与属性的类型相对应。
这里的总体思路是减少存储特定状态的位置数量(因此需要在它们之间进行同步)。GPropertyAction
没有单独的状态与属性值同步 - 它的状态就是属性值。
例如,可以创建一个对应于 GtkStack
的 visible-child-name
属性的 GAction
,以便可以通过菜单切换当前页面。菜单中的活动单选指示器随后将直接由 GtkStack
的活动页面确定。
一个反例是将绑定到 GtkComboBox
的 active-id
属性。这是因为组合框本身的状态可能没有多大意义,实际上被用来控制其他内容。
另一个反例是对GtkStack
的visible-child-name
属性进行绑定,如果这个值实际上存储在GSettings
中。在这种情况下,值的真正来源是* GSettings
。如果您想要一个 GAction
控制存储在 GSettings
中的设置,请参阅 g_settings_create_action()
,并可能将其与 g_settings_bind()
的使用相结合。
自 2.38 起可用
实例方法
从GAction继承的方法(8个)
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开始
属性
从GAction继承的属性(5个)
GAction:enabled
如果action
当前已启用。
从版本:2.28开始
GAction:name
操作名称。这主要用于在将操作添加到GActionGroup
后识别操作。这是不可变的。
从版本:2.28开始
GAction:parameter-type
激活操作时必须提供的参数类型。这是不可变的,并且在没有参数需要的情况下可以是NULL
。
从版本:2.28开始
GAction:state
操作状态,如果没有状态则返回NULL
。
从版本:2.28开始
GAction:state-type
动作的状态所具有的GVariantType
,如果没有状态则返回NULL
。这是不可变的。
从版本:2.28开始
信号
从GObject继承的信号(1个)
GObject::notify
当一个对象的属性通过g_object_set_property()、g_object_set()等方法设置值时,发出notify信号。