【发布时间】:2016-06-13 13:23:25
【问题描述】:
我正在尝试使用 Gtk 和其他 GNOME 技术在 Python3 中制作应用程序。我想实现一个插件系统(最好是 libpeas),但它没有 python 文档。
因此我将C examples 翻译成python。在我必须实例化 PeasExtensionSet 的地方。
第一次尝试,
pset = Peas.ExtensionSet.new(engine, Peas.Activatable, ["window",window])
pset.connect("extension-added", self.on_extension_added, None)
pset.connect("extension-removed", self.on_extension_removed, None)
错误:预期的 GObject.Parameter,但得到了 str
然后尝试,
param = GObject.Parameter()
param.name = "something"
pset = Peas.ExtensionSet.new(engine, Peas.Activatable, [param])
pset.connect("extension-added", self.on_extension_added, None)
pset.connect("extension-removed", self.on_extension_removed, None)
警告:无法查看当前未引用的类型“”的值表。
警告:gvalue.c:188:无法使用类型“(null)”初始化 GValue,此类型没有 GTypeValueTable 实现
警告:g_value_copy:断言 'G_IS_VALUE (src_value)' 失败
然后试了一下,param.value=window
错误:无法设置没有明确定义的所有权转移规则的结构
现在我被困在这里了。任何帮助,将不胜感激。
【问题讨论】:
-
libpeas 只能扩展 C 项目,因为它依赖于 gobject-introspection。
-
gnome-introspection 实际上为许多不同的语言提供了语言绑定。就像 Python 的 Gtk。
标签: python python-3.x plugins gnome gnome-3