glib - para - python gtk+ 3
¿Qué son exactamente GLib y GObject? (1)
GLib y GOBject son 2 bibliotecas C separadas desde las que se construye el kit de herramientas GTK + GUI (entre otras cosas).
Dado que C es un lenguaje de nivel inferior, GLib proporciona una gran cantidad de funcionalidades básicas, como aquellas utilidades similares a las integradas con Python (entrada / salida de archivos, manipulación de cadenas, gestión de memoria, subprocesos, etc.).
Dado que C no es un lenguaje orientado a objetos, GObject proporciona un sistema de objetos basado en C que incluye propiedades y herencia (una vez más, incorporado en Python). En Python, rara vez se usa GLib directamente (porque Python tiene la mayor parte de esa funcionalidad incorporada) pero GObject depende de GLib.
Todas las bibliotecas basadas en GObject están diseñadas para admitir enlaces de idioma a otros idiomas como Python.
Hasta el punto de su pregunta, GObject proporciona un sistema de eventos conocido como "señales". Cualquier objeto derivado de GObject puede "emitir" señales para enviar notificaciones de un evento que ocurre. La clase MPDProtocolClient
en python-mpdor
se deriva de GObject y, por lo tanto, puede emitir señales. Las aplicaciones "conectan" funciones a estas señales. F
Por ejemplo, el archivo README muestra este ejemplo:
import gobject
import mpdor
def notify(client, vol):
print "mpd volume is at ", vol + "%"
client = mpdor.client.Client()
client.connect("mixer-change", notify)
gobject.MainLoop().run()
En este caso, la función denominada notify
está "conectada" a la señal de "mixer-change"
, lo que significa que se llamará a esa función cada vez que el cliente "emita" esa señal. La gobject.MainLoop().run()
ingresa en un " bucle de evento principal " (básicamente un bucle infinito) que es un concepto estándar en la programación dirigida por eventos.
Es probable que no encuentres muchos tutoriales GObject / Python; sin embargo, si aprendes un poco de los conceptos básicos de Python / GTK +, es probable que comprendas los conceptos del bucle de eventos, las señales y las devoluciones de llamada de señales. (Parece que python-mpdor está utilizando GTK + 2, que sería PyGTK en lugar de GTK + 3, que es PyGObject).
Buena suerte.
He estado buscando en el código fuente de python-mpdor y menciona que es
Basado en objetos, para un fácil manejo de eventos (en la clase de cliente de alto nivel).
¿Puede alguien explicarme en términos sencillos qué son exactamente Glib
y GObject
y cómo interactúan entre sí y qué papel desempeña en el manejo de eventos?
Intenté buscar a Glib
y GObject
pero no encontré ninguna explicación básica para ello. Todas las explicaciones que encontré son muy técnicas y por técnicas no son adecuadas para un principiante.
Además, ¿puede alguien señalar algunos tutoriales / artículos para principiantes sobre Glib
y GObject
?