Tutorial GTK

O que é GTK?
GTK é um conjunto de bibliotecas, desenvolvido originalmente por Peter Mattis, Spencer Kimball e Josh MacDonald, 
cujo propósito é servi para a criação de aplicações gráficas.
O GTK, assim como o PHP, é um software livre e independente de plantaforma.

PHP-GTK
O termo é relativamente novo, foi criado em março de 2001 por Andrei Zmievski, natural do Usbequistão; o mesmo esteve 
no Brasil em 2002, durante o III fórum internacional de software livre.


Instalando o GTK
Acesse um dos seguintes links:
• http://www.php-gtk.com.brwww.gnope.org

Vamos agora a um pequeno exemplo e de como executá-lo.
<?php
//criando a janela
$janela = new GtkWindow();

//exibe a janela
$janela->show();

//inicializando a aplicação
Gtk::main();
?>

Inicie o prompt do dos e faça conforme a figura:

Caso esteja numa pasta a execução se dará da seguinte forma: C:\php-gtk2>php ex1/ex1.php Isso se o exemplo estiver dentro de uma pasta de nome ex1. Utilizando o Glade O Glade é uma ferramenta cujo objetivo é desenhar interfaces para programas que utilizam a biblioteca GTK. Desta forma podemos abstrair os detalhes de construção visual da aplicação e nos concentrar apenas na lógica. Para Instalar o Glade no windows, você precisa baixar estes dois arquivos: O primeiro contém as bibliotecas "Gtk Runtime Environment", deve ser instalado: http://downloads.sourceforge.net/gladewin32/gtk-2.12.9-win32-2.exe O Segundo contém o Glade em si. Deve ser descompactado e colocado aonde o gtk-2.12.9-win32-2 foi instalado. Execute o arquivo glade-3.exe que está na pasta /bin: http://downloads.sourceforge.net/gladewin32/glade-3.4.3-win32-1.zip Se você abrir o glade uma janela equivalente a essa aparecerá:
Em níveis superiores há os componentes de janela como: janela, janela de diálogo, janela de seleção de arquivos, etc. Em containers são os containers de alinhamento como: caixa vertical, caixa horizontal, fixo, etc. Em controle de exibição há os demais componentes como: botões, entrada de texto, caixa de combinação, etc. Quando clicar em janela as propriedades da mesma serão exibidas.
Na primeira aba de propriedades temos o geral, que define as características básicas do widget selecionado. Uma propriedade importante a ser definida é o nome do widget. A segunda aba empacotamento depende da forma como você dispõe os widgets. Quando o widget é colocado em um contêiner fixo (GtkFixed), esta aba irá permitir alterar as coordenadas X e Y. Mas quando colocamos o widget dentro de uma caixa vertical (GtkVBox) ou horizontal (GtkHBox), esta aba irá permitir alterar outras propriedades como expandir (se o widget irá se expandir até o limite do contêiner) ou preencher (se o widget irá preencher toda área do contêiner). A terceira aba comum contém algumas propriedades comuns dentre todos os widgets. Como largura, altura, se o widget será visível ou não, etc. A quarta aba sinais, permite conectar os sinais do widget (cliked, pressed, release no caso de GtkButton) a uma função em especial. Visto isso vamos a um exemplo: 1. Clique sobre o ícone janela. 2. Clique no contêiner fixo e depois na janela. 3. Clique num botão e depois na janela. 4. Com o botão selecionado, vá até a aba geral coloque em rótulo “Clique Aqui”. 5. Na aba empacotamento configure as posições x como 160 e y como 100. 6. Na aba comum configure largura como 100 e altura como 40. Nota: Você pode arrastar componentes e redimensioná-los diretamente clicando sobre o mesmo e selecionando o botão “Redimensionar Arrastando”. Depois de salvo, teremos um arquivo no formato XML, com toda a estrutura visual da aplicação. De posse deste arquivo iremos utilizá-lo conforme o exemplo: <?php function onClicked() { $dialog = new GtkMessageDialog(null, Gtk::DIALOG_MODAL, Gtk::MESSAGE_INFO, Gtk::BUTTONS_OK, 'Você clicou!'); $dialog->run(); $dialog->destroy(); } //cria o objeto glade a partir do arquivo exemplo1.glade $glade = new GladeXML('exemplo1.glade'); /*A partir do objeto $glade, é possível retornar todos objetos contidos no arquivo XML (desenhados no glade), utilizando o método get_widget*/ $window = $glade->get_widget('window1'); $botao = $glade->get_widget('button1'); $botao->connect_simple('clicked', 'onClicked'); $window->set_position(GTK::WIN_POS_CENTER); $window->set_default_size(180,100); $window->connect_simple('destroy', array('gtk', 'main_quit')); $window->show_all(); Gtk::Main(); ?> 1. Feche o programa glade e o abra novamente. 2. Abra o seu projeto. Notará que não aparecerá nada. 3. Dê um duplo clique no componente window, localizado logo acima de propriedades. Conexão automática de sinais O Glade permite definir nomes de funções que irão reagir a determinados sinais na própria janela de propriedades (na aba sinais). Fazendo isto, não é necessário mais conectar sinais de cada widget no código-fonte, preocupando-se apenas em escrever as funções que irão reagir a estes sinais. 1. Clique sobre o ícone janela. 2. Coloque um contêiner fixo. 3. Coloque duas labels com os nomes código e nome. 4. Coloque dois campos e coloque os seus nomes como: nome e código. 5. Coloque um botão e coloque em seu rótulo o nome Adicionar. 6. Com o botão selecinado, vá até a aba sinais e digite em manipulado onAdd. 7. Coloque uma imagem. Na aba geral em imagem predefinida, seleciona adicionar. 8. Posicione a imagem a frente do botão. 9. Realize os mesmo prodedimentos para o botão visualizar. E na aba de sinais digite onView. Desta forma, você não precisará mais declara o sinal de conexão: $botao->connect_simple('clicked', 'onView'); Basta agora só cria a função. Criando arquivos .exe para rodar programas em PHP-GTK http://www.php-gtk.com.br/article_127 Alterando o tema (skin) no PHP-GTK http://www.php-gtk.com.br/article_147
PHP-GTK: Criando Aplicações Gráficas com PHP Editora: Novatec Autor: PABLO DALL´OGLIO ISBN: 9788575221105 Origem: Nacional Ano: 2007 Edição: 2 Número de páginas: 445 Acabamento: Brochura Formato: Médio Gerador de intaladores para a plataforma windows (grátis) IZPACK http://baixaki.com.br/download/izpack.htm Tutorial do IZPACK http://www.guj.com.br/posts/list/75334.java InstallSimple http://www.baixaki.com.br/download/installsimple.htm Install Creator http://www.baixaki.com.br/download/install-creator.htm NSIS http://baixaki.com.br/download/nsis-nullsoft-scriptable-install-system.htm Tutorial do NSIS(inglês) www.mausz.net/fileadmin/inhalte/NSIS_-_Tutorial.pps INNO-SETUP http://baixaki.com.br/download/inno-setup.htm Tutorial do INNO-SETUP http://www.devmedia.com.br/articles/viewcomp.asp?comp=5270&hl=