+1

Escrevendo aplicações GUI com PHP-GTK

criado por Luiz Ribeiro em 24/05/2002 6:50pm
Obviamente é muito difícil ensinar PHP-GTK em apenas um artigo, mas espero ter conseguido passar o básico sobre o assunto para você. Para finalizar, trago aqui um script. Um simples visualizador de arquivos de texto sem formatação (.php, .txt, etc).

O código do script:

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

function abrir() {
	global $fs;
	$fs->show_all();
}

function abrir_cancel() {
	global $fs;
	$fs->hide();
}

function abrir_ok() {
	global $window;
	global $fs;
	global $conteudo;
	global $arquivo;
	$arquivo = $fs->get_filename();
	$window->set_title("PGpad ($arquivo)");
	$conteudo->set_point(0);
	$conteudo->forward_delete($conteudo->get_length());
	$f_cont = @fopen($fs->get_filename(), "r");
	$conteudo->insert(null, null, null, str_replace("
","",fread($f_cont, filesize($fs->get_filename()))));
	@fclose($f_cont);
	unset($f_cont);
	$fs->hide();
}

function destroy() {
	gtk::main_quit();
}

function delete_event() {
	return false;
}

$fs = &new GtkFileSelection("Abrir");
$ok_button = $fs->ok_button;
$ok_button->connect("clicked", "abrir_ok", $fs);
$cancel_button = $fs->cancel_button;
$cancel_button->connect("clicked", "abrir_cancel");

$window = &new GtkWindow();
$window->connect("destroy", "destroy");
$window->connect("delete-event", "delete_event");
$window->set_border_width(5);
$window->set_title("PGpad");
$window->set_position(GTK_WIN_POS_CENTER);
$window->set_default_size((gdk::screen_width()-40), (gdk::screen_height()-40));

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

$botao_abrir = &new GtkButton("Abrir");
$botao_abrir->connect("clicked","abrir");
$grid->attach($botao_abrir, 0, 1, 0, 1, GTK_FILL, GTK_SHRINK);

$conteudo = &new GtkText();
$conteudo->set_editable(false);
$scrolled_window = &new GtkScrolledWindow();
$scrolled_window->set_policy(GTK_POLICY_ALWAYS, GTK_POLICY_ALWAYS);
$scrolled_window->add($conteudo);
$grid->attach($scrolled_window, 0, 1, 1, 2);

$conteudo->insert(null, null, null, "Clique no botão Abrir para escolher o arquivo a ser visualizado.");

$window->show_all();

Gtk::main();
?>

A sua janela ficará mais ou menos assim:



Bom, se você notar bem no código, eu usei uma função diferente de meus outros exemplos:
$window->set_default_size((gdk::screen_width()-40), (gdk::screen_height()-40));

Gdk::screen_width() e gdk::screen_height() pegam a largura e a altura da tela do usuário. Então o tamanho desta janela terá de largura: gdk::screen_width()-40, ou seja 40 pixels menos do que a largura da tela. E de altura: gdk::screen_height()-40 (40 pixels a menos que a altura da tela).

Espero ter dado uma sede de PHP-GTK em vocês. Talvez em breve eu (ou alguém) coloque outros artigos sobre o assunto, para ensinar novas técnicas e um pouco mais, além do básico.

Se quiserem informações sobre funções, a melhor alternativa é recorrer ao manual:
http://gtk.php.net/

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 (~19 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 (~19 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 (~21 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 (~21 anos atrás)

a disse:
HAHAHAHAH GOSTEI!
20/09/2003 9:06pm (~21 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 (~22 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 (~22 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 (~22 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 (~22 anos atrás)

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

Novo Comentário:

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