Free Web Hosting Provider - Web Hosting - E-commerce - High Speed Internet - Free Web Page
Search the Web


Página Principal

INSTALANDO PHP-GTK2

ANTES DE EMPEZAR

CREANDO BOTONES























INSTALANDO PHP-GTK2

Antes que nada te recomiento descargar los manueles de PHP en www.php.net y PHP-GTK2 en www.php-gtk2.net
Tambien te recomiendo algunos programas que yo he utilizado:
Como editor PHP y PHP-GTK2 he usado PHP Designer 2007 PE, es muy bueno para mi gusto, si hay algún error este programa te lo dirá y en que linea de código está la falla.
La edisión Personal de ese programa es Freeware, lo pueden encontrar en www.mpsoftware.dk

Instalacíon en WINDOWS

La instalación de PHP-GTK2 en Windows es muy sencilla.
Existe un instalador automático, que viene incluso con algunos Demos, busca el instalador en www.GNOPE.ORG
Instalador de PHP-GTK2 de GNOPE
Sigue los pasos cuidadosamente y en menos de 5 minutos ya estarás listo para empezar.
Tambien lo puedes instalar manualmente pero a mi me resultó algo complicado y nunca lo pude hacer funcionar totalmente.

ANTES DE EMPEZAR
Todas las aplicaciones las debemos guardar con la extensión *.phpw para que se ejecuten sin problema.
Si por algún motivo al hacer doble clic en el  archivo *.phpw no se ejecuta el programa o mse abre con otro programa, por ejemplo el Bloc de Notas, seguimos los siguientes pasos:
- Hacemos clic derecho en el archivo.
- Seleccionamos Abrir con
- Hacemos clic en Buscar
- Buscamos la carpeta donde está instalado PHP y buscamos php-win.exe y lo seleccionamos
- Activamos la casilla usar siempre este programa y hacemos clic en ACEPTAR.

No olvides descargar los manuales de PHP y PHP-GTK2 de sus respectivar páginas Web.

En PHP-GTK2 la parte gráfica de las aplicaciones se arma con varios elementos, como Botones, Cuadros de texto, Ventanas emergentes, etc.
Cada elemento puede contener o puede ser contenido por otro. Los elementos se llaman de forma general Widget.
El Widget que está en el nivel más alto es la ventana principal y puede a su vez contener un solo Widget, por ejemlo un solo Boton dentro de ella.
A menudo se utilizan tablas dentro de la Ventana principal para poder contener dentro de cada celda mas Widget y así multiplicar su capacidad.

Si eres principiante, lee ciudadosamente el manual de PHP en sus partes iniciales, donde te explica claramente que es PHP, para que sirve, como funciona y como es su extructura, eso te será de mucha utilidad.

Los ejemplos aqui mostrados seguramente pueden ser mejorados o pueden contener errores de programación, sinembargo cada ejemplo aquí mostrado y explicado ha sido probado en Windows y ocasionalmente en LINUX.

Los códigos aquí encontrados los puedes copiar, no olvides guardar el archivo con la extensión *.phpw


CREANDO BOTONES
Vamos a crear unas ventanas que incluyan dentro de ellas unos Botones.
Vamos a utilizar 2 ejemplos sencillos.

EJEMPLO 1


<?php
/// Creamos un boton dentro de un Contenedor llamado FIXED lo que permite ubicar el boton en las coordenadas que le indiquemos dentro de la ventana. Este contenedor es mi favorito, cuestion de gustos...///

// Creamos una ventana principal
$window = new GtkWindow;

// Ponemos un titulo a la aplicacion
$window->set_title('Boton Con FIXED');
$window->connect_simple('destroy', array('Gtk', 'main_quit'));

// Creamos un boton con la etiqueta Cerrar, colocamos un _ antes de la C para que al Presionar ALT+C se accione el boton, esto es solo un atajo.
$boton = new GtkButton('_Cerrar');

// Si queremos podemos definir el tamaño del boton
$boton->set_size_request(150, -1);

// Le decimos al boton que al hacer clic cierre el programa
$boton -> connect_simple('clicked', array($window,'destroy'));

// Creamos otro boton que no cumplirá ninguna funcion.
$boton2 = new GtkButton('No hace nada');

// Si queremos podemos definir el tamaño del boton
$boton2->set_size_request(200, -1);

// Creamos un contenedor para el boton, en este caso un FIXED
$Contenedor = new GtkFixed();

// Colocamos los botones creados dentro del contenedor en las coordenadas X=5 Y=5 y el otro en la X=25 Y=40.
$Contenedor -> put($boton,5,5 );
$Contenedor -> put($boton2,25,40 );

// Ahora agregamos el contenedor a la ventana principal
$window -> add($Contenedor);

// Finalmente mostramos todos los elementos de la ventana.
$window->show_all();
Gtk::main();

/// Notese que al maximizar la pantalla los botones se mantienen en el lugar que se los ubicó y del tamaño original.
?>

EJEMPLO 2

<?php
/// Creamos un boton en un contenedor TABLE lo que permite ubicar el boton en las celdas que decidamos, la ventaja del Table es que es extensible, si la ventana se maximiza la Tabla se expande junto con ella y tambien los elementos que estan contenidos ahí ///

// Creamos una ventana principal
$window = new GtkWindow;

// Ponemos un titulo a la aplicacion
$window->set_title('Boton Con GtkTable');
$window->connect_simple('destroy', array('Gtk', 'main_quit'));

// Creamos 5 botones, el numero 3 cerrar la aplicacion
$boton1 = new GtkButton('Boton 1');
$boton2 = new GtkButton('Boton 2');
$boton3 = new GtkButton('_Cerrar');
$boton4 = new GtkButton('Boton 4');
$boton5 = new GtkButton('Boton 5');

// Le decimos al boton 3 que al hacer clic cierre el programa
$boton3 -> connect_simple('clicked', array($window,'destroy'));

// Creamos un contenedor para los botones, en este caso un TABLE, tambien indicamos cuantas filas y cuantas columnas, crearemos, 3 filas y 3 columnas, colocamos false en el tercer parametro que se refiere a si las celdas son homogeneas o no.<?php
/// Creamos un boton en un contenedor TABLE lo que permite ubicar el boton en las celdas que decidamos, la ventaja del Table es que es extensible, si la ventana se maximiza la Tabla se expande junto con ella y tambien los elementos que estan contenidos ahí ///

// Creamos una ventana principal
$window = new GtkWindow;

// Ponemos un titulo a la aplicacion
$window->set_title('Boton Con GtkTable');
$window->connect_simple('destroy', array('Gtk', 'main_quit'));

// Creamos 5 botones, el numero 3 cerrar la aplicacion
$boton1 = new GtkButton('Boton 1');
$boton2 = new GtkButton('Boton 2');
$boton3 = new GtkButton('_Cerrar');
$boton4 = new GtkButton('Boton 4');
$boton5 = new GtkButton('Boton 5');

// Le decimos al boton 3 que al hacer clic cierre el programa
$boton3 -> connect_simple('clicked', array($window,'destroy'));

// Creamos un contenedor para los botones, en este caso un TABLE, tambien indicamos cuantas filas y cuantas columnas, crearemos, 3 filas y 3 columnas, colocamos false en el tercer parametro que se refiere a si las celdas son homogeneas o no.
$Contenedor = new GtkTable(3,3,false);

//Definimos el espacio entre filas y columnas en 5 pixeles.
$Contenedor->set_row_spacings(5);
$Contenedor->set_col_spacings(5);

// Adjuntamos los botones creados dentro del contenedor y consta de 5 parametros basicos.
// El primero es el elemento que vamos a adjuntar, El segundo es un numero que corresponde a la COLUMNA donde va el elemento o Widget, en este caso los botones. El Cuarto corresponde a la FILA donde va el Boton. La verdad aun no comprendo bien para que son los parametros 3ro y 5to pero por las pruebas que he hecho siempre funciona sumandole 1 del parametro anterior, caso contrario me da un error.
$Contenedor -> attach($boton1,0,1,0,1 );
$Contenedor -> attach($boton2,2,3,0,1 );
$Contenedor -> attach($boton3,1,2,1,2 );
$Contenedor -> attach($boton4,0,1,2,3 );
$Contenedor -> attach($boton5,2,3,2,3 );

// Ahora agregamos el contenedor a la ventana principal
$window -> add($Contenedor);

// Finalmente mostramos todos los elementos de la ventana.
$window->show_all();
Gtk::main();

/// Notese que al maximizar la ventana tambien se maximizan los botones, de manera que cual sea el tamaño de la ventana siempren la ocuparan completamente.
?>





ALTERNATIVAS A PHP-GTK2



WINBINDER

Es una extensión de PHP que permite crear apligaciones GUI basadas en PHP, o sea se puede crear aplicaciones con ventanas usando el lenguaje de programación PHP.

WINBINDER es f´ácil de aprender, si ya tienes conocimientos de PHP, entrar a programar con WINBINDER no será una tarea dificil.
Soporta los Themes de Windows y corre nativamente en él.
El inconveniente es que solo se puede realizar aplicaciones para Windows, no correrán en Linux.

Puedes buscar más información en www.winbinder.org