Keep in touch

RSS Feed Twitter Facebook Delicious

Subscribe via Email

Mi Primer Aplicación de Escritorio en PHP + GTK2

March 10th, 2010 by pako received 1 Comment »

Ya hace algún tiempo fácil unos 3 años se de la posibilidad de crear aplicaciones de escritorio con PHP, así es, una parte muy desconocida de este lenguaje es que fusionándose con la librería GTK se pueden crear entornos de escritorio, por decidía y falta de tiempo no he entrado en este campo de PHP aparte que no lo he requerido, hoy hace 4 hrs tenia que hacer una aplicación y dije ha estaría chido hacerla en PHP+GTK haber vamos a ver como se maneja!, ya estuve navegando un rato, leí el introductorio, baje los dos primeros ejemplos y realice mi primera aplicación utilizando esta tecnologías combinadas. y aquí esta mi aplicacioncita de sumar dos números =D, nada mal para solo haber visto solo 2 ejemplos y tener 4 hrs en el tema :), veo que es un tema muy poco documentado en español así que muy posiblemente estaré postiando mas sobre este tema.

Aquí el Código de mi aplicación

<?php
if (!class_exists('gtk')) {
   die("Esto es una aplicación PHP+GTK2 no tienes gtk instalado");
}

function suma(GtkWindow $wnd,GtkEntry $txtN1,GtkEntry $txtN2, GtkLabel $lbRes){
   $lbRes->set_text(" = " .  ($txtN1->get_text()+$txtN2->get_text() ));
}

$wnd = new GtkWindow();
$wnd->set_size_request(170, 70);
$wnd->set_title('Programa de Suma en PHP-GTK2');
$wnd->connect_simple('destroy', array('gtk', 'main_quit'));
$wnd->show_all();
$btnSum = new GtkButton('_Sumar');
$txtN1 =  new GtkEntry();
$txtN2 = new GtkEntry();
$lb1 = new GtkLabel("+");
$lbRes = new GtkLabel(" = ");
$txtN1->set_size_request(40, 20);
$txtN2->set_size_request(40, 20);
$lbRes->set_size_request(30, 20);
$btnSum->connect_simple('clicked', 'suma', $wnd, $txtN1, $txtN2,$lbRes);
$table=new GtkTable(5,2);
$table->attach($txtN1, 0, 1, 0, 1);
$table->attach($lb1,   1, 2, 0, 1);
$table->attach($txtN2, 2, 3, 0, 1);
$table->attach($lbRes, 3, 4, 0, 1);
$table->attach($btnSum, 0, 5, 1, 2);
$wnd->add($table);
$wnd->show_all();
Gtk::main();
?>
Así se ve en Windows Xp Sp3.

y Así en Linux Ubuntu 9.10

De entrada veo la desventaja de que no existe una IDE para realizar el diseño de las interfaces arrastrado (no que yo sepa hasta ahorita) como VisualStudio para .net o NetBeans para Java por lo que los controles hay que escribirlos a manita esto es una desventaja vs los lenguajes que si lo tienen .net o Java etc, aunque sigue siendo mucho menos el código que se necesita codificar para crear la interfaces en PHP que en java por ejemplo, pero pues son lineas que una interfaces nos podría evitar y como siempre enfocarnos en la solución del problema.

Update: 16 Marzo 2010

Ya encontré la forma de crear la GUI desde un programa que se llama Glade, la verdad aun no lo he echando a andar, he tenido problemas al importar, Glade es una herramienta para crear GUI’s con los controles GTK en genera no para un lenguaje en especifico en si no es un IDE, los archivos que maneja glade son XML los cuales en teoría se deberían de importar en lenguaje que se quisieran programar, en PHP+GTK se carga el xml y sólito crea los objetos que requerimos y solo nos restaría la asignación de evento, mas adelante les comentare que tal funciona esto y como hacerlo… cuando me salga ahorita tengo problemas al momento de importar el xml a php, encontré unos ejemplos y funcionan bien pero mis interfaces nada mas no jalan :( bueno ya les contare.. ;), se agradece la mención de glade en twitter de @pstglia

Posted under: PHP, PHP+GTK


One Response to “Mi Primer Aplicación de Escritorio en PHP + GTK2”

  1. Yorguin says:

    Sip, si existe una alternativa para crear la interfase, se llama glade, lo puede descargar de : http://sourceforge.net/projects/gladewin32/files/glade-win32/3.4.3/glade-3.4.3-win32-1.zip/download


Leave a Reply


*