7

Python オブジェクトを作成しましたが、シグナルを送信したいと考えています。gobject.GObject から継承させましたが、オブジェクトに新しいシグナルを作成する方法がないようです。

4

3 に答える 3

11

クラス定義内でシグナルを定義することもできます。

class MyGObjectClass(gobject.GObject):
    __gsignals__ = {
      "some-signal": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (object, )),
    }

タプルの内容は、の最後の3つの引数と同じgobject.signal_newです。

于 2008-09-15T22:52:27.343 に答える
4

方法は次のとおりです。

import gobject

class MyGObjectClass(gobject.GObject):
    ...

gobject.signal_new("signal-name", MyGObjectClass, gobject.SIGNAL_RUN_FIRST,
    None, (str, int))

最後から 2 番目の引数は戻り値の型で、最後の引数は引数の型のタプルです。

于 2008-09-15T20:57:10.490 に答える
2

ここで入手可能なキウイを使用する場合は、次のことができます。

from kiwi.utils import gsignal

class MyObject(gobject.GObject):
    gsignal('signal-name')
于 2008-09-24T10:14:06.910 に答える