Comment créer un nouveau signal dans pygtk
Question
J'ai créé un objet python, mais je veux envoyer des signaux dessus. Je l'ai fait hériter de gobject.GObject, mais il ne semble pas y avoir de moyen de créer un nouveau signal sur mon objet.
La solution
Vous pouvez également définir des signaux dans la définition de classe:
class MyGObjectClass(gobject.GObject):
__gsignals__ = {
"some-signal": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (object, )),
}
Le contenu du tuple est identique aux trois derniers arguments de gobject.signal_new
.
Autres conseils
Voici comment:
import gobject
class MyGObjectClass(gobject.GObject):
...
gobject.signal_new("signal-name", MyGObjectClass, gobject.SIGNAL_RUN_FIRST,
None, (str, int))
Où l'avant-dernier argument est le type de retour et le dernier argument est un tuple de types d'arguments.
Si vous utilisez le kiwi disponible, ici , vous pouvez simplement procéder:
from kiwi.utils import gsignal
class MyObject(gobject.GObject):
gsignal('signal-name')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow