Pregunta

He creado un objeto de python, pero quiero enviar señales sobre ella.Me hizo heredar de gobject.GObject, pero parece que no hay ninguna forma para crear una nueva señal en mi objeto.

¿Fue útil?

Solución

También puede definir de señales dentro de la definición de la clase:

class MyGObjectClass(gobject.GObject):
    __gsignals__ = {
      "some-signal": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (object, )),
    }

El contenido de la tupla es el mismo como el de los tres últimos argumentos para gobject.signal_new.

Otros consejos

Aquí es cómo:

import gobject

class MyGObjectClass(gobject.GObject):
    ...

gobject.signal_new("signal-name", MyGObjectClass, gobject.SIGNAL_RUN_FIRST,
    None, (str, int))

Donde el segundo al último argumento es el tipo de retorno y el último argumento es una tupla de tipos de argumento.

Si utiliza kiwi disponible aquí usted puede hacer:

from kiwi.utils import gsignal

class MyObject(gobject.GObject):
    gsignal('signal-name')
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top