2008-09-15 11 views
7

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

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') 
Verwandte Themen