Desenvolvendo aplicações
desktop com PHP-GTK
Por: Maykel dos Santos Braz
Slide 2
Slide 2 text
Sobre o autor
Bacharel em Engenharia de Computação (2005)
– UEMG – Campus Ituiutaba-MG;
BrScan Tecnologia e Proc. de Dados (2006)
Zend Certified Engineer – PHP5 (2008)
Especialista em Des. de Jogos Digitais (2009)
Slide 3
Slide 3 text
Roteiro
Sobre o autor;
Introdução;
Conhecendo o PHP-GTK;
Glade;
Referências.
Slide 4
Slide 4 text
Introdução
PHP: Hypertext Preprocessor
– Linguagem de script modularizada;
– Voltado para desenvolvimento web;
– Acesso a base de dados;
– Suporte a OO;
– CLI – PHP 4.3/2002;
– Releases
• PHP/FI 2.0 – 1996;
• PHP 3 – 1998;
• PHP 4 – Zend Engine – 2000;
• PHP 5 – Zend Engine 2 – 2004;
• PHP 6 – ????
Fonte: http://en.wikipedia.org/wiki/File:PHPCode_HelloWorld.svg
Slide 5
Slide 5 text
Introdução
GTK+ (The GIMP ToolKit)
– Voltado para criação de GUIs;
– Multiplataforma;
– Baseado em Widgets;
– Bind para diversas linguagens;
– Releases
• GTK+ 1 – 1998;
• GTK+ 2 – GObject – 2002;
• GTK+ 3 – ????
Slide 6
Slide 6 text
Introdução
PHP-GTK
– Bind de GTK+ para PHP;
– Permite utilizar PHP para criação de aplicações
desktop;
– Integração com Glade/XML;
– Utilização de temas;
– Vantagens do PHP e do GTK+;
– Releases
• PHP-GTK 1
• PHP-GTK 2 – GTK+ 2.6/2.12 – 2008
Slide 7
Slide 7 text
PHP-GTK
Instalação
– Linux: http://www.php-gtk.com.br/linux
– Windows: http://www.php-gtk.com.br/windows
– MacOs: http://www.php-gtk.com.br/mac
Adicione o executável/binário ao PATH;
Fonte: Pacote de instalação PHP-GTK Windows
show_all();
Gtk::Main();
?>
Fonte: Código de teste – PHP-GTK Brasil
Slide 8
Slide 8 text
PHP-GTK
Principais conceitos
– Widgets: Componentes da interface. Podem ser
visuais ou não;
– Sinais: Mensagens emitidas pelos widgets;
Slide 9
Slide 9 text
Widgets
Originado de: “Windows Gadgets”;
Níveis superiores
– Janelas (GtkWindow);
– Caixas de diálogo (GtkDialog, GtkAboutDialog,
etc);
Controles e Exibição
– Botões (GtkButton);
– Caixas de texto (GtkEntry);
– etc...
Contêineres
– Caixas Horizontais e Verticais (GtkHBox,
GtkVBox);
– Tabelas (GtkTable);
– GtkFixed;
– etc...
Slide 10
Slide 10 text
Widgets – Empacotamento
Empacotamento
– Limitado pela estrutura do contêiner;
– Espaçamento e dimensões adaptados à estrutura do
contêiner;
Slide 11
Slide 11 text
Exemplo de código: Empacotamento
Slide 12
Slide 12 text
Widgets – Posicionamento
Posicionamento
– Limitado pelo tamanho da janela;
– Espaçamento e dimensões definidas pelo usuário;
Slide 13
Slide 13 text
Exemplo de código: Posicionamento
Slide 14
Slide 14 text
Sinais
Mensagens emitidas
pela GUI;
São tratados por
funções/métodos do
tipo callback;
Slide 15
Slide 15 text
Exemplo de código: Tratando sinais
connect_simple();
– int connect_simple(string, callback[, mixed[, ...]]);
connect();
– int connect(string, callback[, mixed[, ...]]);
Slide 16
Slide 16 text
Glade – Criador de GUIs
Agiliza a criação de GUIs;
Independente de linguagens de programação;
gladeXML.
Slide 17
Slide 17 text
Glade - Interface
Biblioteca de widgets
Área de trabalho
Hierarquia Propriedades
Slide 18
Slide 18 text
Exemplo de código: GladeXML
Slide 19
Slide 19 text
Exemplo de código: Carregando
o “.glade”
A classe GladeXML;
get_widget();