+1

Escrevendo aplicações GUI com PHP-GTK

criado por Luiz Ribeiro em 24/05/2002 6:50pm
Agora vamos fazer uma GUI com vários elementos, ou seja, com botões, labels, etc...

Para isso, vamos usar as tabelas. Em GTK+, as tabelas funcionam de forma semelhante às do HTML. Para criarmos uma tabela vamos usar:

<?php
$grid = &new GtkTable(4, 2);
$grid->set_row_spacings(4);
$grid->set_col_spacings(4);
$window->add($grid);
?>

Isto irá criar uma tabela chamada $grid, com 4 colunas e 2 linhas. Onde as mesmas terão espaçamento de 4 pixels. A tabela será adicionada na widget $window.

Para adicionarmos widgets dentro de nossa tabela usaremos:

$grid->attach($meu_widget, 0, 1, 1, 2);

O exemplo acima irá colocar $meu_widget dentro da tabela $grid, ocupando as colunas de 0 até 1 e as linhas de 1 a 2.

Vamos agora fazer um simples script que irá mostrar a frase 'PHPBrasil.com' dentro de uma label ao clicarmos em um botão (usando a mesma janela da página anterior):

<?php
//Chama a extensão
if (!class_exists('gtk')) {
	if (strtoupper(substr(PHP_OS, 0,3) == 'WIN')) {
		dl('php_gtk.dll');
	} else {
		dl('php_gtk.so');
	}
}

//Funções que serão chamadas caso a janela seja fechada
function destroy() {
	gtk::main_quit();
}

function delete_event() {
	return false;
}

//A função que será chamada ao clicarmos no botão
function clicado() {
	global $label;
    $label->set_text("PHPBrasil.com");
}

//Cria a janela
$window = &new GtkWindow();
$window->connect("destroy", "destroy");
$window->connect("delete-event", "delete_event");
$window->set_border_width(5);
$window->set_title("Minha segunda GUI");
$window->set_position(GTK_WIN_POS_CENTER);
$window->set_default_size(320, 200);

//Cria a tabela com 1 coluna e 2 linhas
$grid = &new GtkTable(1, 2);
$grid->set_row_spacings(4);
$grid->set_col_spacings(4);
$window->add($grid);

//Cria um label com o texto: 'Clique no botão abaixo'
$label = &new GtkLabel();
$label->set_text("Clique no botão abaixo");

//Coloca a label ocupando as colunas de 0 à 1 e as linhas de 0 à 1 na tabela
$grid->attach($label, 0, 1, 0, 1);

//Cria um botão com o texto 'Meu Botão'
$button = &new GtkButton("Meu Botão");

//Relaciona a função clicado() com o evento 'clicked' do botão
$button->connect("clicked","clicado");

//Coloca o botão ocupando as colunas de 0 à 1 e as linhas de 1 à 2
$grid->attach($button, 0, 1, 1, 2);

//Mostra a janela e todas as widgets dela
$window->show_all();

//Inicia o loop principal
Gtk::main();
?>

Esta aplicação inicialmente ficará mais ou menos assim:



Após você clicar no botão, ela ficará assim:

Comentários:

Mostrando 1 - 10 de 15 comentários
Olá pessoal acabei de renovar todo o meu site, e todo ele é acerca de programação PHP e PHP-GTK, tem dezenas de códigos PHP-GTK para download Aguardo a vossa visita

http://onidesk.sytes.net
19/08/2005 2:06pm (~13 anos atrás)

Pessoal tenho um grupo de php gtk com bastantes dicas interessantes

acessem lá e vejam
http://groups-beta.google.com/group/GTK-PORTUGAL

Para mais contactem-me no meu site http://onidesk.sytes.net
25/05/2005 7:12am (~13 anos atrás)

Gustavo Souza disse:
Se alguém souber de um compilador de arquivos GTK posta ae o link...
13/12/2003 1:58pm (~14 anos atrás)

Pensei em instalar essa biblioteca doida, mas pintou uma pequena dúvida:
O que o cliente precisa ter instalado para ver a aplicação?
08/12/2003 7:47am (~14 anos atrás)

André Taiar disse:
HAHAHAHAH GOSTEI!
20/09/2003 9:06pm (~15 anos atrás)

Buenas !

Tchê, ate onte eu sei nao, pois o php-gtk vai ler o seu arquivo .php interpretar-lo e depois executar.

Valeu,

Gordo
11/09/2002 2:43pm (~16 anos atrás)

Aplicação GUI é uma aplicação que faz uso de interface gráfica com o usuário. Serve pra que algumas pessoas possam usar o computador, pois para elas de outra forma seria difícil demais.
28/06/2002 11:01pm (~16 anos atrás)

Bem. Delphi é um editor. A linguagem é o object pascal. E sem a ajuda do delphi, essa linguagem também é bem xaropinha.
28/06/2002 10:59pm (~16 anos atrás)

Luiz Ribeiro disse:
O propósito do php-gtk, como o rodrigo disse, é provar que o php é orientado a objetos, e pode fazer aplicações client-side usando gui. Isto mostra que o objetivo não é disputar mercado com tecnologias como delphi ou visual basic.
02/06/2002 4:31pm (~16 anos atrás)

Luiz Ribeiro disse:
Nem sei cara, procura no google...
28/05/2002 2:37pm (~16 anos atrás)

Novo Comentário:

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