+2

Entenda o PHP-GTK

criado por Thiago Ribeiro em 09/12/2003 8:58pm
Esta segunda parte segue-se com o conceito de containers.

Lendo o primeiro artigo mencionei algo sobre containers, não sei se repararam mais eles são widgets que servem para "conter" outros widgets. O nosso container principal é o GtkWindow porque é nele que vão todos os outros. Lembram-se do conceito de cascateamento??? É isso, são containers que vão sendo encaixados uns aos outros. Vou citar alguns aqui como por exemplo GtkWindow, GtkTable, GtkVbox, GtkHbox, GtkFrame, etc. Eles são derivados do widget GtkContainer que também é derivada da GtkWiget. Como não temos muito o que falar de containers vou colocar alguns exemplos de utilização dos próprios:

<?php
GtkWindow():
                                                                                                                                                                         
$janela = &new GtkWindow();
                                                                                                                                                                         
$texto = &new GtkLabel("Este é um container principal");
                                                                                                                                                                         
$janela->add($texto);
                                                                                                                                                                         
// Obs: container com um texto inserido.
                                                                                                                                                                         
GtkTable():
                                                                                                                                                                         
$texto1 = &new GtkLabel("texto 1");
$texto2 = &new GtkLabel("texto 2");
                                                                                                                                                                         
// a sequencia de funcionamento da tabela é a seguinte GtkTable(linhas,colunas);
$tabela = &new GtkTable(2,1); 
                                                                                                                                                                         
// adiciona um widget
$tabela->attach($texto1,0,1,0,1,GTK_FILL,GTK_FILL,0,0); 
// adiciona um widget
$tabela->attach($texto2,0,1,1,2,GTK_FILL,GTK_FILL,0,0); 
                                                                                                                                                                         ?>

Attach é um método para containers, serve para adicionar algo dentro do container, no exemplo acima eu inseri a variável $texto1 começando na coluna 0 até a coluna 1 e começando na linha 0 até a linha 1. Logo após inseri $texto2 começando na coluna 0 até a coluna 1 e linha 1 até linha 2.

<?php
GtkVbox():
                                                                                                                                                                         
$texto1 = &new GtkLabel("texto 1");
                                                                                                                                                                         
$caixavertical = &new GtkVBox(false,1);
                                                                                                                                                                         
$caixavertical->pack_start($texto1,false,false);
                                                                                                                                                                         
GtkFrame():
                                                                                                                                                                         
$texto1 = &new GtkLabel("texto 1");
                                                                                                                                                                         
$frame = &new GtkFrame("testando frame");
                                                                                                                                                                         
$frame->add($texto1);
?>

Como podemos ver cada container tem um método de adição: add, pack_start, attach, etc....

Abaixo estão alguns métodos usados em containers:

set_border_width() = adiciona uma borda;

add() = adiciona um widget ao container;

remove() = remove um widget do container;

children() = retorna um array contendo os widgets presentes no container

focus() = seta o evento focus para dada direção


Morreram suas dúvidas??? :)))

É claro que nem todas as dúvidas foram tiradas mais também devemos ler a documentação do http://gtk.php.net caso precisamos de algo que não se descreve aqui. Vamos seguir na próxima e última página com os callbacks e signals (sinais).

Comentários:

Mostrando 1 - 9 de 9 comentários
Cara!! Pra o tempo em que isso foi escrito... Tô de boa com a linguagem!! Apesar do aparente desprezo de alguns, php-gtk representa uma potencia da programação de interface gráfica: Alguns dos benefícios são relativos ao custo de desenvolvimento!! E depois que baixei o phpblender... pense num negócio que facilita legal a vida da gente!!
12/10/2005 9:38am (~12 anos atrás)

luish disse:
Pow ontem eu instalei o PHP-GTK e rodeio os arquivos dele numa boa, porém hoje, fui rodar a calculadora em PHP-GTK e outros arquivos dele, não apareceu mais nada... o quê aconteceu?? alguem pode ajudar??
20/01/2004 4:42pm (~14 anos atrás)

galera... quando postei o artigo não tinha notado que estava faltando uma parte.. agora está aí... e respondendo ao marcondes sobre os executáveis acesse o site http://www.priadoblender.com para obter mais informações sobre o próprio...
10/12/2003 12:38pm (~14 anos atrás)

muito boa essa matéria, o GTK eh show msm.soh pra informar a PUC criou uma ferramenta chamada IUP q parece bastante com o GTK, ela explora as características nativas do sistema operacional, soh q por enquanto naum existe para PHP, soh pra C e uma tal de LUA, legal pra quem quer fazer softwares sem ter q "comprar" um delphi ou VB da vida...
10/12/2003 8:29am (~14 anos atrás)

Newton Wagner disse:
Bem, tentando responder a dúvida do marcodes, acho que não cara.. pelo que entendi do PHP-GTK, ele nada mais é que uma extensão do PHP, que é uma linguagem interpretada, e não compilada. Então é necessário instalar o PHP no cliente pra poder rodar aplicações do GTK.

Muito bom artigo mesmo, mas como o marcodes disse, seria ótimo se pudessemos gerar executáveis a partir disso. :).
10/12/2003 8:08am (~14 anos atrás)

Diogo Gomes disse:
Thiago, ótimo seu artigo e facilitou bastante pra quem quer entrar no mundo GTK, verdadeiramente está bem facilitado... Agora criarei coragem para desenvolver algo com o PHP-GTK, detesto começar a trabalhar em algo que eu não saiba, mesmo que por cima, os conceitos básicos... Foi assim com XML, com o próprio PHP e com o Linux.

Parabéns... Vamos entrar nos containers, hehehe
10/12/2003 5:24am (~14 anos atrás)

marco antonio disse:
Sou novo na área de programação e gostaria de saber se há possibilidade de fazer executáveis através dessa linguagem para facilitar a distribuíção de aplicativos feitos em PHP-GTK
09/12/2003 11:02pm (~14 anos atrás)

Bom, como em qualquer projetinho

algumas dicas sao interessantes..
no outro artigo do nosso amigo
haviam algumas funções function pra la function pra cá.. e o que notei num arquivinho GTK que recebi de um amigo esses dias (um editor de texto) ele colocou todas estas funcoes como se faz em php num outro arquivo e faz referencia a elas depois
nos arquivos que precisar.. fica bem mais organizado

Abraços!
09/12/2003 8:59pm (~14 anos atrás)

Sem comentários..
aliás..vai chover bons comentários aqui!

este exemplo do método connect ficou a coisa mais simples do mundo.. mas é isso que a pessoa precisa na hora de estudar, nada de coisas absurdamente complexas, se o que ela precisa entender é o simples..

é tipo estudar ER, quem já estudou o assunto sabe que não é um monstro como algumas parecem ser.

meus sinceros parabéns ficou simples, prático e objetivo o artigo.
09/12/2003 8:54pm (~14 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)