在无状态操作中使用 Gio.SimpleAction 参数

Using Gio.SimpleAction argument in stateless action

Gio.SimpleAction.new 的文档说我可以指定一个名称(字符串)和参数类型(GLib.VariantType(或 None)。如果我为第二个参数指定 GLib.VariantType,我该如何指定它的值?

我知道我可以在操作的连接调用中指定一个参数,但随后处理程序中的第一个参数得到 None。似乎为该参数指定一个值可能很有用,但我没有看到这是如何完成的。

您在 g_action_activate 中指定它的值。

因此,您执行以下操作,例如对于布尔值:

vtype = GLib.VariantType.new("b")
action = Gio.SimpleAction.new("name", vtype)
# action.connect ("activate", handler, *args)
value = GLib.Variant.new_boolean (True)
a.activate(value)