web-dev-qa-db-ja.com

GObject-Introspectionを使用するための「import gobject」の移植。 (PyGTKからPyGIおよびGTK 3)

GIとGTK3を使用するためにPyGTKからライブラリを移植しようとしています。問題は、gobjectインポートに固有のリソースが見つからないことですが、GTK専用です。誰かが私のために以下を翻訳するなら、私はこのようなことをする方法を理解することを望んでいた。 GTKのこと自体はかなりよく文書化されているようですが、これについては何も見つかりません。


__gsignals__ = {'cell-edited' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
    (gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT, 
    gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT)), 'selection-changed' : 
    (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,))}

特定のドキュメントを見つけることができなかったので、定数の名前を変更するだけの問題であると思いましたが、代わりのものは見つかりませんでした。

5

Dir()の後にコードをクラックしたと思います-GObjectクラスで見つけられるすべてのものを==

G_SIGNAL_RUN_FIRSTGSignalFlags列挙型にあり、GObject.SignalFlags.RUN_FIRSTに変換されます。これは一貫性があるため、G_SIGNAL_MATCH_IDはenumで見つかりますGSignalMatchTypeGObject.SignalMatchType.IDに変換されます。

完全に明らかではありませんが、探したいものがわかれば十分簡単です。

4

以前のコメントによると、あなたが尋ねた翻訳は次のようになります:

from gi.repository import GObject

__gsignals__ = {'cell-edited': (GObject.SignalFlags.RUN_LAST,
                                GObject.TYPE_NONE,
                                (GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT)),
                'selection-changed': (GObject.SignalFlags.RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_PYOBJECT,))}

しかし、私自身の経験によると、いくつかのpython型は何らかの形で内部的にGObjectの対応するものにマップされます(または、少なくとも、あたかもそれが存在するかのように動作します)、つまりobjectGObject.TYPE_PYOBJECTにマップされ、NoneGObject.TYPE_NONEにマップされるため、次のバージョンの方が簡単です。

from gi.repository import GObject

__gsignals__ = {'cell-edited': (GObject.SignalFlags.RUN_LAST,
                                None, (object, object, object, object, object)),
                'selection-changed': (GObject.SignalFlags.RUN_LAST, None, (object,))}
4
jcollado