Maestros del Web


Estás en Inicio / Editorial / Desarrollo Web

03.02.2003

Introducción al PHP-Gtk

La programación en PHP-GTK viene de la fusión del lenguaje de script PHP y la libreria de objetos GTK+

La programación en PHP-GTK
viene de la fusión del lenguaje de script PHP
y la librería de objetos GTK+,
el encargado de desarrollar la librería fue Andrei Zmievski. Con esta librería
y junto a la programación sencilla que tiene el
PHP
se pueden conseguir aplicaciones
GUI (Graphical User Interfaces) muy interesantes y potentes.

El PHP es un lenguaje de programación
de alto nivel, el cual se esta convirtiendo en un lenguaje de propósito general
al estilo que Perl o Python.

La programación PHP-GTK se basa
totalmente en POO (Programación
Orientada a Objetos), se basa en ella ya que con los widgets con los cuales
se trabaja son clases y se declaran como objetos en el programa. El PHP-GTK
cuenta con muchísimos widgets (componentes) y a su vez esos
widgets con muchísimos signals (eventos). La persona que domina perfectamente
o bastante bien PHP no tendrá
ningún problema para empezar a programar en PHP-GTK,
muchas aplicaciones se basan en la creación de clases propias para generar
los widgets dinámicamente.

El PHP-GTK tiene sus ventajas
y sus desventajas como todo lenguaje de programación. Entre sus ventajas se
encuentran la facilidad con la que se programa, ya que es puro
PHP
, a parte de eso, PHP consta de muchísimas librerías externas, la posibilidad de trabajar con
una cantidad grandísima de bases de datos abre la posibilidad a crear aplicaciones
gestoras de estas bases de datos, también gana puntos al ser un lenguaje multiplataforma
y correr sobre las dos plataformas más importantes, Linux y Microsoft.
Una de las desventajas es que al ser un lenguaje interpretado se necesita tener
el interprete de PHP, y esto trae
al alto consumo de las aplicaciones, ya que son imposibles de compilar.

Adentrándonos en lo que nos interesa, PHP-GTK,
empezaremos con los primeros pasos en el lenguaje.

Para poder comenzar deberemos instalar los componentes necesarios, es decir,
el intérprete de PHP, PHP-GTK y
las librerías adicionales que necesitemos. Para ello lo mejor que podemos
hacer es visitar la página oficial de cada lenguaje y seguir los pasos indicados.
Nos deberemos pasar por href="http://www.php.net/">http://www.php.net/ y href="http://gtk.php.net/">gtk.php.net

En nuestros programas PHP-GTK lo primero que se deberá hacer es cargar la librería php_gtk.dll (para window) o (php-gtk.so) para
Linux o Unix de la siguiente manera:

<?php
   dl(?php_gtk.so?);
?> 

Como nuestros programas serán multiplataforma, deremos dar
la opción cargar las dos librerias, por lo cual al insertar nuestra libreria
lo haremos de la siguiente manera:

<?php
    dl(stristr(PHP_OS, ?WIN?) ?  ?php_gtk.dll? : ?php_gtk.so?);
?> 

De esta manera veremos previamente el sistema operativo que
utiliza el usuario y a continuación cargaremos la libreria necesaria.
Lo siguiente sería el crear la ventana principal del programa, esto se hace
facilmente con el objeto GtkWindow,
este objeto será el que contendra el resto de widgets de nuestro programa.

<?php
  dl(stristr (PHP_OS, "WIN") ? "php_gtk.dll" : "php_gtk.so");
        function delete_event()
        {
    return false;
        }
        function cerrar()
        {
    Gtk::main_quit();
        }
        function hola()
        {
    global    $ventana;
    print "Hola Mundo!\n";
    $ventana->cerrar();
        } 

        $ventana = &new GtkWindow();
        $ventana>connect('destroy', 'cerrar');
        $ventana>connect('delete-event', 'delete_event');
        $ventana>set_border_width(10); 

        $boton = &new GtkButton('Hello World!');
        $boton>connect('clicked', 'hello');
        $ventana>add($button);
        $tt = &new GtkTooltips();
        $tt->set_delay(200);
        $tt->set_tip($button, 'Hola
        mundo', '');
        $tt->enable();
        $ventana->show_all();
        Gtk::main();
        ?> 

Este es un simple programa de ejemplo del uso de PHP-GTK.

Califica esta nota:

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (7 votos, promedio: 4.43 de 5)
Loading ... Loading ...

Sobre el autor

Iván Rodriguez

Si eres nuevo en Maestros del Web y te agradan nuestras publicaciones, te invitamos a suscribirte a nuestro Feed.

Sindícanos en: Google Reader, Bloglines, My Yahoo o My MSN | ¿Qué es el Feed?

Comentarios

20 comentarios en total.

  1. cvander 03.02.2003 - 22:49 - #

    Una introducción que nos lleva al grano. Suena muy bien esta tecnología y seguramente estaremos revisando algún tutorial en el futuro para ver que podemos hacer con ella.

    Me llama mucho la atención que la comparas con python. Conocí ese lenguaje y me llamó la atención por lo fácil que era programar por su simplicidad. Que puedes decir con respecto a php-gtk, también tiene esa simplicidad o es más elaborado?

    Y también me interesa saber un poco de requerimientos para utilizar dicha tecnología.

  2. MSDark 04.02.2003 - 00:46 - #

    Mas info de PHP-GTK

    http://www.forosdelweb.com/forumdisplay.php?s=&forumid=51
    BY epplestun

    Saludos :arriba:

  3. Ecab 29.10.2003 - 15:14 - #

    Muy interesante

  4. Ronnie 27.01.2004 - 12:51 - #

    es muy bueno pero quiero saber sia hay un api para el php-gtk si saben de alguno agamelo saver ok ronnie@infouni.edu.pe

  5. cosme 30.03.2004 - 13:35 - #

    function hola()
    {
    global $ventana;
    print “Hola Mundo!\n”;
    $ventana->cerrar(); < -- aqui es $ventana->destroy();
    }

    ventana>connect(’destroy’, ‘cerrar’);
    $ventana>connect(’delete-event’, ‘delete_event’);
    $ventana>set_border_width(10);

    es:

    ventana->connect(’destroy’, ‘cerrar’);
    $ventana->connect(’delete-event’, ‘delete_event’);
    $ventana->set_border_width(10);

    $boton>connect(’clicked’, ‘hello’);
    $ventana>add($button);

    es:

    $boton->connect(’clicked’, ‘hola’);
    $ventana->add($boton);

    $tt->set_tip($button, ‘Hola mundo’, ”)
    es:
    $tt->set_tip($boton, ‘Hola mundo’, ”)

    son simples errores, pero personas como yo se pueden confundir ;).. shao desde Mazatlàn Sinaloa

  6. j4nusx 30.10.2004 - 12:52 - #

    Bienvenidos a USINOS
    http://usinos.org

    El grupo de Usuarios Sinaloeses de Open Source . Se formó a mediados de Septiembre del 2001, gracias al entusiasmo de algunas personas interesadas en compartir sus experiencias del sistema operativo, así como apoyar su difusión.

    Objetivos

    Los objetivos del grupo son los de difundir el sistema operativo Linux, promover su uso y enseñanza; así como también apoyar el desarrollo del OpenSource en el país.

    USINOS no persigue fin económico alguno, sino, sólo el de servir a la comunidad Open Source de Sinaloa. La participación dentro el grupo esta abierta a todas las personas e instituciones dispuestas a colaborar con los objetivos y fines del grupo.

    ¿Quienes conforman USINOS ?

    USINOS se conforma por los que participan activamente en las actividades del grupo y por los usuarios que participan, básicamente, en las listas de correo.

    Existe una coordinación para los USINOS, que puede ser contactada en: j4nusx@yahoo.com Para ser miembro de los USINOS, sólo necesitas conocer un poco de Linux, BSD, o algun otro SO de codigo abierto, tener mucho entusiasmo, ganas de trabajar y comprometer parte de tu tiempo para las actividades del grupo.

    Encuentranos en servidor IRC: irc.freenode.org

    canal #linux-hispano

  7. cibermorrischetumal 02.01.2006 - 21:55 - #

    cosme, function hola()
    {
    global $ventana;
    print “Hola Mundo!\n”;
    $ventana->cerrar(); < -- aqui es $ventana->destroy();
    }

    ventana>connect(’destroy’, ‘cerrar’);
    $ventana>connect(’delete-event’, ‘delete_event’);
    $ventana>set_border_width(10);

    es:

    ventana->connect(’destroy’, ‘cerrar’);
    $ventana->connect(’delete-event’, ‘delete_event’);
    $ventana->set_border_width(10);

    $boton>connect(’clicked’, ‘hello’);
    $ventana>add($button);

    es:

    $boton->connect(’clicked’, ‘hola’);
    $ventana->add($boton);

    $tt->set_tip($button, ‘Hola mundo’, ”)
    es:
    $tt->set_tip($boton, ‘Hola mundo’, ”)

    son simples errores, pero personas como yo se pueden confundir ;).. shao desde Mazatlàn Sinaloa

    hola que tal a lo mejor ya lo saben pero a mi costo un poco de tiempo
    trataba de correr el ejemplo anterior y al igual que cosme esas omisiones(ya aclaradas) fueron una piedra en el camino, pero fueron boien a provechadas, por que me ayudaron a comprender mas el rollo de phpgtk, el motivo de mi “post” es que el ejemplo asi como esta me mandaba un error al finalizar de correrlo algo de ” modulo de memoria es solo written” algo asi por el estilo
    lo que me sacaba de onda y bla bla bla
    husmenado por hay encontre un codigo muy igualito, el cual lo ejecutaba
    y al final no me mandaba ningun error, lo cual me lllevo a compararlos y lo unico que pienso qu hace la diferencia es qe el ejemplo que no fallaba agregaba el boton a un contenedor (box vertical) y el box a la ventana y tan
    tan
    aqui esta el codigo yo estoy empezando a usar phpgtk y estoy con PHPGTK2(no se si esto tambien influya ,no lo se)
    si a alguine le paso lo mismo y sabe exactamente que era POSTEELO!! no sea

    < ?php

    if (!class_exists(’gtk’)) {
    if (strtoupper(substr(PHP_OS, 0, 3)) == ‘WIN’)
    dl(’php_gtk.dll’);
    else
    dl(’php_gtk.so’);
    }

    function cerrar()
    {
    Gtk::main_quit();
    }

    function hola()
    {
    global $ventana;
    print “Hola Mundo!\n”;
    $ventana->destroy();
    }
    $ventana = &new GtkWindow();
    $ventana->connect(’destroy’,'cerrar’);

    $ventana->set_border_width(10);
    $boton = &new GtkButton(’Hello World!’);
    $boton->connect(’clicked’, ‘hola’);

    $tt = &new GtkTooltips();
    $tt->set_delay(200);
    $tt->set_tip($boton, ‘Hola mundo’, ”);
    $tt->enable();
    $box = &new GtkVBox(false, 10);
    $box->set_border_width(10);

    $box->pack_start($boton);
    $ventana->add($box);
    $ventana->show_all();
    Gtk::main();
    ?>

  8. Eric Cobas 10.06.2006 - 03:24 - #

    Muy pero muy interesante
    Pienso que es necesario adentrarse en este mundo…

  9. martin 07.07.2006 - 19:24 - #

    bueno e interesante

  10. webness 04.08.2006 - 11:28 - #

    donde puedo ver una demostracion ya ejecutandose de un programa real de este gtk?

  11. Edwin 10.03.2007 - 23:22 - #

    Hola.
    He estado buscando la forma de crear aplicaciones con PHP con ventanas.
    He escuchado de este PHP-GTK, la verdad aun no he empezado a utilizarlo pero con lo que he conseguido de informacion me parece interesante pero algo complicado para alguien con poco experiencia como yo.
    Entre todas esas busquedas encontre un programa llamado WINBINDER, permite crear aplicaciones con ventanas con PHP. Interesante, facil de usar. En la pagina principal de WINBINDER puedes encontrar una comparacion entre PHP-GTK y WINBINDER.

  12. Edwinx 10.03.2007 - 23:33 - #

    Hola otra vez.
    He creado algunas pequeñas aplicaciones con PHP y WINBINDER y todo ha salido bien, funciona casi a la primera.
    :)
    Lo digo porq aun solo estoy aprendiendo WINBINDER, PHP ya lo he probado como 6 meses y me parece sencillo.
    Bueno si en algo puedo ayudar aqui le dejo mi email:
    edwin_dlca@hotmail.com

  13. David 21.08.2007 - 08:10 - #

    Quisiera saber si me pueden dar una ayudita…

    necesito obtener una fecha(SOLO MES Y AÑO) y guardarlo en una base de datos en MySQL

    1) Como se obitenen las fechas
    2) Que tipo de campo debe ser el campo en MySQL
    3) Como se debe enviar a guardar en el MySQL: el formato para enviar…

    si pueden ayudarme con eso se los agradeceria infinitamene

  14. Jose Hernandez 15.03.2008 - 20:40 - #

    Hola donde consigo el php-gtk para windows que funcione, baje el que esta en http://www.gnope.org/downloads/gnopesetup-1.0.exe y me da error cuando busco de instalar, me urge, quiero realizar una aplicacion de escritorio con php..de antemano gracias por la ayuda

  15. quijote shin 23.05.2008 - 20:38 - #

    mmmm
    look …..
    David:
    existen varias clases ya definida para eso
    y funciones nativas de php

  16. quijote shin 23.05.2008 - 20:56 - #

    sorry :P aprete enter a esta cosa mira una de las tantas es getdate(); por ejemplo -

  17. quijote shin 23.05.2008 - 20:56 - #

  18. quijote shin 23.05.2008 - 20:57 - #

    $fecha = getdate();
    $mes = $fecha["month"];
    $anho = $fecha["year"];

    $sql = “INSERT INTO `almacenar`.`fechas` (`mes` ,`anho` ,)
    VALUES (’$mes’, ‘$anho’);”;

    mysql_query($sql);

  19. quijote shin 23.05.2008 - 20:59 - #

    Jose Hernandez..
    q error especifico??
    intenta por instalarlo desde la página oficial
    gtk.php.net …
    gnope si es bueno.. pero tratad por aí ..

  20. norman 03.07.2008 - 07:43 - #

    sigue vivo php-gtk, yo pense q nadie mas se interesaba en el proyecto… seria bueno que vayan colaborando para revivir de nuevo el proyecto.

    ah! tambien esta una libreria interesante php-qt parece estar buena tambien, aunque aun no la he probado.

Deja tu Comentario


Maestros del Web se reserva el derecho de moderación de los comentarios. Evita utilizar palabras soeces, ataques directos, descalificativos, insultos, de lo contrario tu comentario será eliminado.


-


Maestros del Web es el punto de encuentro para los entusiastas de la red.

Creative Commons by-nc-sa 3.0 | Política de Privacidad | CMS: Wordpress