¿Cómo puedo crear una nueva señal en pygtk
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.
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