• Home
  • Projetos
  • Palestras
  • Artigos
  • Livros

PHP-GTK: Aplicações Gráficas em PHP

PHP-GTK: Aplicações Gráficas em PHP

Para receber o artigo, informe abaixo seu email:
Email:

Keyworkds:

Introdução PHP O PHP é provavelmente hoje a linguagem para soluções Web mais utilizada no mundo todo. É uma linguagem altamente flexível e que contém centenas de funcionalidades para os mais diferentes objetivos: Manipulação de strings, de arquivos, de arrays; Possui conectividade com uma série de Bancos de dados, como Postgres, Mysql, Oracle, Sybase, Interbase, Sql Server, ODBC, informix e firebird, dentre outros. O PHP é utilizado como uma linguagem server-side embutida em código HTML. Aplicações em PHP rodam em um browser. Mais informações em http://www.php.net Gtk Gtk é um toolkit, uma biblioteca escrita em C, com sua arquitetura orientada a objetos. Seu propósito é servir ao desenvolvedor como base para criar aplicações gráficas. O Gtk foi concebido originalmente para o desenvolvimento do GIMP (GTK = Gimp ToolKit), software de edição de imagens. Mas se tornou tão popular que hoje grande parte das aplicações Linux são escritas em C utilizando a biblioteca Gtk, como o próprio Gnome (gerenciador de janelas). Mais informações em http://www.gtk.org PHP-GTK O PHP-GTK nada mais é do que uma extensão da linguagem PHP que permite-nos utilizar as classes do Gtk. Dessa forma, podemos escrever um programa em PHP utilizando classes gráficas para montar um ambiente com janelas e botões, rodando localmente, o que nos permite além de tudo isso, acessar recursos da máquina cliente, como: disco, portas seriais, etc.. Ambos PHP e GTK são multi-plataforma, logo o PHP-GTK também é. Assim uma aplicação escrita em PHP-GTK rodará em Linux e Windows da mesma forma. Mais informações em http://gtk.php.net Conceitos gráficos Para desenvolver aplicações gráficas é necessário tomarmos conhecimento de alguns termos comuns na área, veja: Widgets Widgets (Windows gadgets) são cada um dos componentes visuais utilizados para construção de uma aplicação gráfica: botões, listas, frames, janelas, etc. Container Um container, ou contêiner é um widget que pode conter ou receber em seu interior outros componentes. Alguns exemplos de containers são: frames, Caixas, Janelas, etc. Signal Um sinal é uma mensagem emitida por um widget, gerada pela interação do usuário. Exemplo: quando o usuário clica em um botão, o botão emite o sinal chamado "clicked". Callback Callback é uma função criada pelo usuário para reagir aos sinais emitidos pelos widgets. Instalação No site http://gtk.php.net ou em www.php-gtk.org.br (site da comunidade brasileira), você encontra maiores informações de como instalar o PHP-GTK em Linux ou Windows. Aqui iremos abordar a instalação de um pacote pré-compilado para Linux que vem junto com o CD da revista. Este pacote traz o PHP-GTK compilado com suporte nativo ao MySQL e ao PostgreSQL. Veja como instalar: Copie do CD o arquivo php-gtk.tar.gz para o diretório /usr/local # cd /usr/local # tar -xzvf php-gtk.tar.gz # chmod 777 php-gtk -Rf # ln -s /usr/local/php-gtk/php/bin/php /usr/bin/php # exit Agora, para testar e ver se o PHP-GTK está rodando corretamente. # php /usr/local/php-gtk/sample/gtk.php Meu Primeiro Programa Para criar um ambiente gráfico, é necessário conhecer as classes do Gtk. Por exemplo: GtkWindow representa uma janela; GtkButton, representa um botão; GtkLabel representa um rótulo de texto. Todas classes são claramente documentadas no site do PHP-GTK, juntamente com seus atributos e seus métodos. A seguir um programa que consiste em uma janela contendo um botão chamado "Clique aqui". Quando o usuário clica neste botão, abre-se outra janela contendo o texto "Olá Mundo". Arquivo exemplo1.php set_default_size(100,100); // rótulo de texto $texto = new GtkLabel('Olá Mundo'); $popup->add($texto); // coloca o texto dentro da janela $popup->show_all(); // exibe a janela popup } // cria a janela principal $janela = new GtkWindow; // cria um botao $botao = new GtkButton ('Clique aqui'); // liga o sinal de clicar à função NovaJanela $botao->connect_object('clicked', 'NovaJanela'); // coloca o botão dentro da janela $janela->add($botao); // exibe a janela $janela->show_all(); // inicializa aplicação gtk::main(); ?> Para executar a aplicação, digite: # php exemplo1.php Glade: Desenvolvimento visual rápido Para acelerar o desenvolvimento de aplicações em PHP-GTK existe o Glade, ferramenta muito conhecida no Linux para desenhar o visual de aplicações gráficas GTK. Para a instalação do Glade, o CD da revista acompanha o arquivo glade-0.6.4.tar.gz. Basta salvar o arquivo no diretório /usr/local/src e instalar da seguinte forma: # cd /usr/local/src # tar -xzvf glade-0.6.4.tar.gz # cd glade-0.6.4 # ./configure # make # make install Rodando o Glade: # glade Programando com o auxílio do Glade. A seguir um exemplo de programa em PHP-GTK utilizando uma interface desenhada no Glade. A Imagem ao lado exibe uma interface construída no glade (arquivo tela.glade). Este arquivo pode ser invocado dentro do código PHP-GTK, onde podemos manipular cada um dos objetos que fazem parte desta interface. Veja o campo textcodigo, do tipo GtkEntry (caixa de entrada de dados). Obter um elemento é o mesmo que criar o objeto dentro do código, para obter o objeto, basta saber seu nome (propriedade name). E então poderemos utilizar todos seus métodos e propriedades. Arquivo exemplo2.php get_widget(`window1´); /* obtendo o objeto textcodigo $textcodigo = $interface->get_widget(`textcodigo´); */ // exibindo a janela $janela->show_all(); // inicializando a aplicação gtk::main(); ?> Executando a aplicação: # php exemplo2.php Temas O PHP-GTK permite aplicar temas ou skins nas aplicações. Para conseguir um tema, você pode baixar do site: http://gtk.themes.org. Faremos o exemplo a seguir com o Tema AquaGraphite, que acompanha o CD (arquivo AquaGraphite.tar.gz). Para aplicar o tema, descompacte o arquivo no mesmo diretório da aplicação: # tar -xzvf AquaGraphite.tar.gz O exemplo a seguir, chama-se temas.php, utiliza uma interface desenhada no Glade chamada de temas.glade. Veja em negrito, a única linha que teve de ser adicionada neste programa para que o tema fosse aplicado: Arquivo temas.php Aplicações em PHP-GTK No site http://gtk.php.net/apps, você encontra diversas aplicações construídas em PHP-GTK. Lá você encontra o Teak (ferramenta de e-mail), o PHPMole (editor de código) e também o Agata Report, uma ferramenta livre para geração de relatórios, disponível em www.agata.org.br, e que iremos nos aprofundar na próxima edição. Autor Pablo Dall'Oglio Bacharelando em Análise de Sistemas pela UNISINOS. Um dos coordenadores do projeto GNUTeca e também o criador do projeto Agata Report. Trabalha como Desenvolvedor e Consultor de Tecnologia, realizando prospecções, análise e implantação de sistemas para gestão acadêmica e para gestão de acervos bibliográficos pela Solis (www.solis.coop.br). Especialista em Bancos de Dados, orientação a objetos, PHP e PHP-GTK. Estará lançando um livro sobre PHP-GTK nos próximos mêses pela editora Novatec.

Livros


  • Outros

    • Galeria de Fotos
    • Posts no Codare

    Arquivo

    • 2009
    • 2008
    • 2007
    • 2006
    • 2005
    • 2004
  • Google

    Blogroll

    • Adler Medrado
    • Aurélio Jargas
    • Andrei Zmievski
    • Eduardo Maçan
    • Efetividade
    • Er Galvão
    • Joel on Software
    • Marcelio Leal
    • Martin Fowler
    • Miguel de Icasa
    • Newton Wagner
    • Rafael Dohms
    • Rasmus Lerdorf
    • Sérgio Crespo
    • Timoty Ney

    Posts Aleatórios

    • Sabado Academico na FTEC em Caxias do Sul
    • Luau do Sesi e Show do Cidadao Quem em Teutônia
    • II Forum Gnome
    • Sintaxe do Vim no Ubuntu
    • 1o PHPDF Road Show
    • Roteador ZinWell G220 como repetidor
    • PHP Programando com Orientação a Objetos :: Segunda Edição
    • Agata/GNUTeca em Goias
    • phpNow! em Petrópolis-RJ
    • Gerando Thumbs em PHP
    • Semana de Capacitação em Software Livre
    • As novidades do PHP5
    • Dobrando a camisa para a viagem
    • Acessando o Gmail do PHP
    • 7o Fórum Internacional de Software Livre
    • Instalação do GNUTeca e passeio em Itaipú
    • eeePC 1000HD é muito bom
    • 2 Workshop PHPMS
    • III Seminário de Desenvolvimento de Software Livre
    • Finalmente Mestre!
 
Designed by Wolfgang Bartelme Designed by Wolfgang Bartelme

© 2006 Wordpress Themes | Theme (Not so) Fresh
XHTML CSS