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.br
• www.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=
|