2016-06-13 6 views
0

私はGtkのと他のGNOME技術とのpython3でアプリケーションを作成しようとしています。私はプラグインシステム(好ましくはlibpeas)を実装したいが、Pythonのためのドキュメンテーションはない。はどのようにのpython3のGtkアプリケーションのためのLibpeasを使用してプラグインシステムを作るには?

そこで私は、Pythonに、C examplesを翻訳されました。 PeasExtensionSetをインスタンス化する必要がある時点で。
まず、試みそして、
param.value=window

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) 

Warning: can't peek value table for type '' which is not currently referenced.
Warning: gvalue.c:188: cannot initialize GValue with type '(null)', this type has no GTypeValueTable implementation
Warning: g_value_copy: assertion 'G_IS_VALUE (src_value)' failed

を試みそして、

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) 

Error: Expected GObject.Parameter, but got str

を試しここで私はここで立ち往生した。どんな助けもありがとう。

+0

libpeasしかCプロジェクトを拡張することができます。 – TingPing

+0

のgnome-イントロスペクションは、実際には、多くの異なる言語の言語バインディングを提供します。 PythonのGtkと同じです。 – theawless

答えて

0

は、これは既知のバグで、herehereに取り組んされています。

我々は、それはAPIのいくつかのハックの変更をし、extension-added信号でこれを行うことによって動作させることができます:それはGObjectの-イントロスペクションに依存しているので

def on_extension_added(self, set, info, activatable): 
    # main difference from how normal libpeas plugin system works 
    activatable.set_object(self.public_object) 
    activatable.activate() 
関連する問題