Tabla de contenidos
Los métodos de señales son métodos de la clase
gobject.GObject que
se heredan en los gtk.Objects incluyendo todos los controles GTK+.
handler_id = object.connect(name,cb,cb_args) handler_id = object.connect_after(name,cb,cb_args) handler_id = object.connect_object(name,cb,slot_object,cb_args) handler_id = object.connect_object_after(name,cb,slot_object,cb_args) object.disconnect(handler_id)
Los primeros cuatro métodos conectan un manejador de señales
(cb) a un objeto gtk.Object
(object) para la señal especificada por
name, y devuelven un valor handler_id
que identifica la conexión. cb_args son cero o más argumentos
que serán pasados al final de la llamada al manejador cb.
Los métodos connect_after() y
connect_object_after() harán que se llame a sus manejadores
después de haber llamado a todos los demás manejadores (incluyendo los manejadores
predeterminados) que estén conectados a ese mismo objecto y señal. Cada manejador
de señales de un objeto tiene su propio conjunto de argumentos. Resulta útil consultar la
documentación de GTK+ para averiguar qué argumentos se deben usar en cada manejador
de señales, aunque se proporciona información sobre los controles más comunes en el apéndice
Señales de GTK+. El manejador de señales
genérico es similar a este:
def signal_handler(object, ....,cb_args):
Los manejadores de señales que se definen como métodos de una
clase Python (especificados en los métodos connect() como
self.cb) tendrán un argumento adicional como primer argumento,
la instancia del objeto self:
signal_handler(self,object, ....,cb_args)
Los métodos connect_object() y
connect_object_after() llaman al manejador de señales
con el slot_object en lugar del object
como primer argumento:
def signal_handler(slot_object, ....,func_args): def signal_handler(self,slot_object, ....,func_args):
El método disconnect() elimina la conexión
entre un manejador y la señal de un objeto. El argumento
handler_id especifica la conexión que se eliminará.
Los siguientes métodos:
object.handler_block(handler_id) object.handler_unblock(handler_id)
bloquean y desbloquean el manejador de señal especificado en
el argumento handler_id. Cuando un manejador de señal
está bloqueado no es invocado cuando se produce la señal.
Los siguientes métodos:
object.emit(name, ...) object.emit_stop_by_name(name)
emiten y paran, respectivamente, la señal especificada en el
argumento name. La emisión de la señal hace que se ejecuten el
manejador predeterminado y los definidos por el usuario. El método
emit_stop_by_name() abortará la emisión de señales actual.