Frage

Ich habe ein Python-Objekt erstellt, aber ich möchte Signale an sie senden. Ich habe es von gobject.GObject erben, aber es scheint nicht, eine Möglichkeit zu sein, ein neues Signal auf dem Objekt zu erstellen.

War es hilfreich?

Lösung

Sie können auch Signale innerhalb der Klassendefinition definieren:

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

Der Inhalt des Tupels ist die gleiche wie die letzten drei Argumente gobject.signal_new.

Andere Tipps

Hier ist, wie:

import gobject

class MyGObjectClass(gobject.GObject):
    ...

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

Wenn die zweiten zum letzten Argumente ist der Rückgabetyp und das letzte Argument ist ein Tupel von Argumenttypen.

Wenn Sie Kiwi verfügbar hier rel="nofollow Sie können einfach tun:

from kiwi.utils import gsignal

class MyObject(gobject.GObject):
    gsignal('signal-name')
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top