Primeros Pasos en PHP-GTK2

Después de mucho andar he vuelto a PHP-GTK2 ahora de la mano de GUI Development with PHP-GTK2 - User Interfaces Alias Gnope.

Este instalador trae todo lo necesario para empezar a programar en PHP-GTK2 sobre windows. La primera impresión es que es más rápido que phpgtk1 y además más claro. Ayuda el paso a PHP5 y su manejo de clases.

Despues de probar los ejemplos empecé a portar una vieja aplicación que hice en wxpython un consultor del diccionario de la RAE. Se ingresa una palabra y buscamos en la RAE si está y mostramos el resultado en un cuadro de texto no editable.

Se termina viendo más o menos así. rae.jpg

El script completo lo pueden bajar de aquí .

Está compuesto de un archivo rae.php con todo el código principal, una clase de conversión de html a txt y un tercer arhivo que es el archivo que contiene la GUI realizado con GLADE.

Todo el código está comentado aunque me gustaría hacer ciertas aclaraciones.

Locales

El instalador por defecto solo viene con los locales en inglés así que si queremos usar un stock-button (algo así como una lista de botones con acciones por default) debemos instalarlo para esto vamos a tener que bajarnos el paquete de gtk desde ftp://ftp.gtk.org/pub/gtk/v2.6/win32/gtk+-2.6.9.zip descomprimir la carpeta lib/locale dentro de C:\PHP-Gtk2\lib o tu ruta de gnope seleccionada durante la instalación. Despues de esto podemos tener los botones y opciones de menu en el idioma que queramos solo seteando la variable Lang antes de llamar al script. Por Ejemplo: set lang=it para italiano.

Errores

Es importante para ver si nuestra aplicación está funcionando como debe mirar la consola para ver que mensajes arroja así que es preferible llamar al script desde una consola. Inicio->ejecutar->cmd y desde ahí llamar con la ruta completa al php y no al php-win ya que perdemos toda información de errores.

La codificación

La información obtenida de la RAE trae algún error de codificación o hay un bug en iconv porque no puede traducir algunos caracteres.

Que no se detenga

Para que la aplicación no parezca congelada mientras estamos consultando es necesario decirle al phpgtk que actualice la gui aunque otro proceso esté corriendo. Para esto tenemos el método gtk::main_iteration(); que hace que corran todos los eventos pendientes.

Disable no existe (nota mental)

Para desactivar un widget (en mi caso el botón de buscar) no existe una función disable sino otra con un nombre muy poco apropiado set_sensitive(false o true) que hace lo que necesitaba.

GLADE

Para armar la interface utilicé glade2 , es un editor visual de pantallas Gtk. Basicamente lo que hace es generar el xml que luego utilizaremos en la aplicación con $glade = new GladeXML(’rae\rae.glade’); de esta manera tenemos un objeto que contiene toda la información de la interfaz gráfica.

Por ahora nada más si hay dudas escriban via http://blog.codigophp.com/index.php/contacto/

Qué es esto ?

Un sitio dedicado a mostrar PHP y las tecnologías asociadas.



 
mad vpn
mp3fiesta zml mp3fiesta.com strongvpn.com