Construindo um ToolBar com botões no PHP-GTK

Este artigo mostrará como criar um ToolBar em uma aplicação PHP-GTK. Criaremos um ToolBar com 3 botões que, inclusive, pode ser "destacado" da janela, ficando no estado "flutuando" pela sua área de trabalho.

[ Hits: 22.898 ]

Por: Hugo Sousa Sacramento em 01/05/2004


O código



Eis o código que irá criar nossa aplicação com o Toolbar. O código está explicado através de comentários.

<?php
// módulo PHP-GTK para Windows ou Linux:
dl('php_gtk.' . (strstr(PHP_OS, 'WIN') ? 'dll' : 'so'));


// Criando a Main Window(Janela Principal) e suas propriedades:
$window = &new GtkWindow();
// Largura, Altura da janela
$window->set_default_size(800 /* Largura */, 600 /* Altura */);
// Posição da Janela. Pode ser usado no formato x,y com a função set_position(x, y);
$window->set_position(GTK_WIN_POS_CENTER);
// Título da janela
$window->set_title("Criando Toolbar...");
// Conecta O sinal destroy da janela à função gtk::main_quit que encerra a aplicação
$window->connect_object('destroy', array('gtk', 'main_quit'));
// Mostra a Janela
$window->show();

// Criando Widget Fixed na Janela para Fixar as posições:
$fixed = &new GtkFixed;
// Colocando o Fixed na Janela(A janela por si só pode conter apenas um widget, o fixed pode conter vários):
$window->add($fixed);

// Este Widget permitirá que o nosso ToolBar se torne destacável da janela(ver screenshot 2).
$HandleBox = &new GtkHandleBox;

// +-------------------+
// |                   |
// | Criando o TOOLBAR |
// |                   |
// +-------------------+
$ToolBar = &new GtkToolBar("GTK_ORIENTATION_HORIZONTAL" , "GTK_TOOLBAR_BOTH");
/*
Orientação(1º Parâmetro) pode ser: GTK_ORIENTATION_HORIZONTAL ou GTK_ORIENTATION_VERTICAL
ToolBarStyle(2º Parâmetro) pode ser: GTK_TOOLBAR_ICONS, GTK_TOOLBAR_TEXT, GTK_TOOLBAR_BOTH
*/


// Espaço entre cada item do ToolBar
$ToolBar->set_space_size(2);


// +----------------+
// |    Botão 1     |
// +----------------+
// Criando um Pixmap de uma imagem Xpm
$pixmap = gdk::pixmap_create_from_xpm($window->window, null, 'Package.xpm');
$icon = &new GtkPixmap($pixmap[0], $pixmap[1]);
// Criando o botão que receberá a imagem
$button = &new GtkButton();
$button->add($icon);

// +----------------+
// |    Botão 2     |
// +----------------+
// Criando um Pixmap de uma imagem Xpm
$pixmap2 = gdk::pixmap_create_from_xpm($window->window, null, 'RenameModel.xpm');
$icon2 = &new GtkPixmap($pixmap2[0], $pixmap2[1]);
// Criando o botão que receberá a imagem
$button2 = &new GtkButton();
$button2->add($icon2);

// +----------------+
// |    Botão 3     |
// +----------------+
// Criando um Pixmap de uma imagem Xpm
$pixmap3 = gdk::pixmap_create_from_xpm($window->window, null, 'Save.xpm');
$icon3 = &new GtkPixmap($pixmap3[0], $pixmap3[1]);
// Criando o botão que receberá a imagem
$button3 = &new GtkButton();
$button3->add($icon3);


// Colocando o botão na próxima posição do toolbar
$ToolBar->append_widget($button, "Este texto irá aparecer quando o mouse estiver em cima do botão 1", "Este texto irá aparecer quando o mouse estiver em cima do botão 1");
$ToolBar->append_space(); //Insere o espaço após o botão

$ToolBar->append_widget($button2, "Este texto irá aparecer quando o mouse estiver em cima do botão 2", "Este texto irá aparecer quando o mouse estiver em cima do botão 2");
$ToolBar->append_space(); //Insere o espaço após o botão

$ToolBar->append_widget($button3, "Este texto irá aparecer quando o mouse estiver em cima do botão 3", "Este texto irá aparecer quando o mouse estiver em cima do botão 3");

//Colocando o ToolBar dentro do HandleBox que criamos
$HandleBox->add($ToolBar);
//Colocando o HandleBox dentro do Fixed que criamos
$fixed->put($HandleBox, 10 /* Posição x */, 0 /* Posição y */);

$button->connect_object('clicked', 'Dialog', "Botão 1 Clicado!");
$button2->connect_object('clicked', 'Dialog', "Botão 2 Clicado!");
$button3->connect_object('clicked', 'Dialog', "Botão 3 Clicado!");

// Mostrando todos os itens da Janela:
$window->show_all();

function Dialog($text)
{
    $label = &new GtkLabel($text);
    $dialog = &new GtkDialog();
    $vbox = $dialog->vbox;
    $vbox->pack_start($label);
    $dialog->show_all();
}

// Iniciando o Loop
Gtk::main();
?>

Espero que tenham gostado!

Se quiserem saber como fazer alguma outra coisa em PHP-GTK como menus, calendário, etc, é só pedir através dos comentários nesse artigo.

Abraços,
Hugo Sacramento.

Página anterior    

Páginas do artigo
   1. Conceitos
   2. O código
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

MVC - Conceito e exemplo em PHP

Como ter o ChatGPT no seu site em PHP

Instalando e configurando o PHP 7.1 no CentOS 7

PHP e suas variáveis (básico)

Sistema de notícias em PHP

  
Comentários
[1] Comentário enviado por adell em 01/05/2004 - 21:15h

Hugo, na verdade eu sempre tive esta duvida mas nunca perguntei, mas la vai.

Se eu instalar o php-gtk na minha maquina o php normal vai sofrer alguma alteração?

[2] Comentário enviado por hugo_sacramento em 02/05/2004 - 11:15h

O PHP-GTK não é uma nova linguagem ou novo PHP, é simplesmente um módulo que é acrescentado ao seu PHP e contém classes que lhe permitem criar aplicações gráficas.

Portanto a resposta é não! seu PHP não sofrerá alterações apenas ganhará um módulo.

Abraços,

Hugo Sacramento.

[3] Comentário enviado por jragomes em 02/05/2004 - 13:21h

o o php-gtk é muito legal. Pois a linguagem php é muito rica em funcionalidade, aliando um módulo gráfico dá pra fazer aplicações que não deverão nada pro visualbasic ou qq outra...

[4] Comentário enviado por jeffestanislau em 02/05/2004 - 19:57h

Hugo,
Posta um screenshot no site para ilustrar seu artigo mostrando pra galera como fica o visual das atividades com o php-gtk e depois coloca o link aqui como comentário...

waleu!!!
[]'s

[5] Comentário enviado por hugo_sacramento em 03/05/2004 - 08:48h

Eu tentei colocar um screenshot, mas não sei se tive sucesso. O site me deu uma confirmação, mas não consegui visualizá-lo.

Vcs podem ver screenshots de algumas aplicações no site brasileiro do PHP-GTK: www.php-gtk.org.br é só clicar em ::Aplicações.

Abraços,

Hugo Sacramento

[6] Comentário enviado por _simmons_ em 03/05/2004 - 10:27h

Fala Hugo, blz ?? Parabéns pelo artigo cara. O que você acha do glade pra criação de interfaces em gtk ??? Ah.. é possível utilizar o glade+php ?? Valeu, abraço

André Michi

[7] Comentário enviado por hugo_sacramento em 03/05/2004 - 11:30h

Obrigado,

É legal criar interfaces no glade. Fica super rápido o desenvolvimento!

Não entendi bem sua pergunta sobre glade+php. Vc pode criar a interface no Glade e usar no PHP-GTk com a classe GladeXML.

Vou escrever um artigo sobre isso!!

Abraços,

Hugo Sacramento

[8] Comentário enviado por comfaa em 28/10/2008 - 13:00h

muito legal !!!

[9] Comentário enviado por lukeholm em 16/05/2017 - 20:37h


Excelente artigo introduzindo a funcionalidade do PHP-GTK. A princípio, parece ser algo pra ser usado mais pela pessoa propriamente, como por exemplo ao invés de fazer um script em uma página, fazer usando o gtk e rodar no Gnome. Gostaria de avaliar se daria pra fazer algo "comercial" com isso. Por exemplo: Existiria alguma forma de ocultar o código do aplicativo gerado? Existe alguma forma de fazer o deploy, uma vez que ele depende do php-GTK instalado na máquina destino? Para que ele possa concorrer em algum nível com outras linguagens que possuem capacidade de geração para desktop, seria necessário esse mínimo. Voce saberia dizer algo sobre?

Obrigado
Enviar


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts