Wie erstelle ich ein neues Signal in pygtk
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.
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