Come posso creare un nuovo segnale in pygtk
Domanda
Ho creato un oggetto Python, ma voglio inviargli segnali.L'ho fatto ereditare da gobject.GObject, ma non sembra esserci alcun modo per creare un nuovo segnale sul mio oggetto.
Soluzione
Puoi anche definire segnali all'interno della definizione della classe:
class MyGObjectClass(gobject.GObject):
__gsignals__ = {
"some-signal": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (object, )),
}
Il contenuto della tupla è lo stesso degli ultimi tre argomenti gobject.signal_new
.
Altri suggerimenti
Ecco come:
import gobject
class MyGObjectClass(gobject.GObject):
...
gobject.signal_new("signal-name", MyGObjectClass, gobject.SIGNAL_RUN_FIRST,
None, (str, int))
Dove il penultimo argomento è il tipo restituito e l'ultimo argomento è una tupla di tipi di argomento.
Se usi il kiwi a disposizione Qui puoi semplicemente fare:
from kiwi.utils import gsignal
class MyObject(gobject.GObject):
gsignal('signal-name')
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow