Saudações phpzeiros! Depois de um tempo sem postar graças ao trabalho, estou de volta
. E vamos voltar a série de posts de aplicações desktop com php-gtk. Hoje vamos falar um pouco de containers.
Containers são componentes (widgets) que encapsulam outros componentes. Janelas, painés, frames são exemplos de containers.
Os dois tipos básicos mais usados de containers são GtkBin e GtkBox. O primeiro só permite um componente filho, enquanto o segundo permite que vários widgets sejam acoplados ao container. Essas duas classes são abstratas e como tal não podem ser instânciadas diretamente.
Vamos então falar dos containers mais usados:
- GtkHBox, GtkVBox
Organiza os componentes filhos em uma única linha horizontal (GtkHBox) da esquerda para a direita ou vertical (GtkVBox) do topo para a base. Os métodos usado para adicionar os componentes são pack_start e pack_end.
Estrutura do GtkHBox
| Componente 1 |
Componente 2 |
Componente n |
Estrutura do GtkVBox
| Componente 1 |
| Componente 2 |
| Componente n |
$vbox = new GtkVBox();
$vbox->pack_start( new GtkEntry() );
$vbox->pack_start( new GtkEntry() );
$wnd->add($vbox);
- GtkTable
Organiza os componentes no formato de uma tabela usando linhas e colunas. Os componentes podem ocupar mais de uma linha/coluna.
Os componentes são adicionados usando o método attach do GtkTable. Nele você deve dizer em que linha/coluna o componente deve iniciar e terminar.
$table->attach($label, 0, 2, 0, 1);
No exemplo acima, o label vai iniciar na coluna 0 e terminar na coluna 2 (ocupando duas colunas), iniciar na linha 0 e terminar na linha 1 (ocupando 1 linha apenas).
- GtkFixed
O mais flexivel na minha opinião. O desenvolvedor informa as coordenadas x e y em que o componente deve ficar posicionado na tela. O método usado para adicionar os componentes é o put ou move. Para tal, basta indicar a posição (x,y) de onde o componente deve ser colocado no formulário.
$fixed->put( new GtkEntry(), 8, 24);
- GtkWindow
Esse é o container mais usado. Como se trata de um GtkBin, só permite apenas um componente filho. O método usado para adicionar os componentes é o add.
$win = new GtkWindow();
$win->set_title("Exemplo GtkWindow");
$fixed = new GtkFixed();
$fixed->put( new GtkEntry(), 8, 24);
$win->add($fixed);
É isso ai galera. Até o próximo post.
Agosto 25, 2008
Que o PHP é uma das linguagens de programação mais usadas em ambiente web, todo mundo sabe. Mas pouca gente sabe que também é possível criar aplicações desktop com ela. E é isso que nós iremos fazer. Para tal, iremos utilizar o PHP-GTK.
O que é GTK/GTK+?
O GTK (Gimp Tool Kit) é uma poderosa biblioteca para desenvolvimento de aplicações GUI multi-plataforma, muito utilizada no mundo linux e que vem ganhando seu espaço também no windows.
PHP-GTK
É linguagem binding que permite aos desenvolvedores PHP criarem aplicações gráficas multi-plataforma sem abrir mão dos recursos do PHP.
Vamos então instalar os trecos \o/
Ingredientes
- PHP-GTK
- Uma caneca com café
Instalação do PHP-GTK no Windows
Baixe aqui http://sourceforge.net/project/downloading.php?groupname=agata&filename=php-gtk2b.exe&use_mirror=ufpr o instalador, execute-o e seja feliz.
Instalação do PHP-GTK no Linux
Baixe aqui http://sourceforge.net/project/downloading.php?groupname=agata&filename=php-gtk2b.tar.gz&use_mirror=ufpr o pacote pré-compilado e siga os passos abaixo:
# tar -xvzf php-gtk2b.tar.gz
# mv php-gtk2 /usr/local/
# ln -sf /usr/local/php-gtk2/bin/php /usr/bin/php-gtk2
1,2,3, testando
Para testar crie um novo arquivo chamdo exemplo.php com o código abaixo:
<?php
if (!class_exists(‘gtk’)) {
die(“O módulo php-gtk2 não foi carregado corretamente. Verifique seu php.ini.”);
}$wnd = &new GtkWindow();
$wnd->set_title(‘Exemplo’);
$wnd->connect_simple(‘destroy’, array(‘gtk’, ‘main_quit’));$label = &new GtkLabel(“Perdeu preiboy!’”);
$wnd->add($label);
$wnd->show_all();
Gtk::main();
?>
Para executar, vá até a linha de comando e execute:
No Linux
# php-gtk2 exemplo.php
No Windows
C:\php-gtk2\php.exe exemplo.php
É isso ai. No próximo post vamos explorar melhor os recursos do PHP-GTK.
Pra quem quiser saber mais sobre o projeto:
http://www.php-gtk.com.br/
http://gtk.php.net/
Abraços!
Junho 24, 2008