Ich habe ein Python-Objekt erstellt, aber ich möchte Signale senden. Ich habe es von gobject.GObject geerbt, aber es scheint keine Möglichkeit zu geben, ein neues Signal auf meinem Objekt zu erzeugen.Wie erstelle ich ein neues Signal in pygtk
7
A
Antwort
11
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 Tupel sind die gleichen wie die letzten drei Argumente gobject.signal_new
.
4
Hier ist, wie:
import gobject
class MyGObjectClass(gobject.GObject):
...
gobject.signal_new("signal-name", MyGObjectClass, gobject.SIGNAL_RUN_FIRST,
None, (str, int))
Wo die zweitletzte Argument ist der Rückgabetyp und das letzte Argument ein Tupel von Argumenttypen ist.
2
Wenn Sie Kiwi Nutzung stehen zur Verfügung here Sie können einfach tun:
from kiwi.utils import gsignal
class MyObject(gobject.GObject):
gsignal('signal-name')