Slide 1

Slide 1 text

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();

Slide 20

Slide 20 text

Referências  Sites oficiais – PHP: Hypertext Preprocessor – http://php.net – GTK+ – http://www.gtk.org/ – PHP-GTK – http://gtk.php.net/ – PHP-GTK Brasil – http://www.php-gtk.com.br/ – Glade User Interface Builder - http://glade.gnome.org/ – Glade/Gtk+ for Windows - http://sourceforge.net/projects/gladewin32  Livros – PHP-GTK – Criando Aplicações Gráficas com PHP. Pablo Dall’Oglio. Editora Novatec. 2007  Revistas – PHP Magazine #2 / #3 / #4 / #5 / #6

Slide 21

Slide 21 text

Referências  Tutorial PHP-GTK2 – http://br.geocities.com/paulotravaglia/  PHP – Wikipedia – http://pt.wikipedia.org/wiki/PHP – http://en.wikipedia.org/wiki/PHP  GTK+ – Wikipedia – http://pt.wikipedia.org/wiki/GTK – http://en.wikipedia.org/wiki/GTK%2B  List of widgets toolkits – Wikipedia – http://en.wikipedia.org/wiki/List_of_widget_toolkits  Overview of the GNOME Plataform – http://developer.gnome.org/doc/guides/platform-overview/platform-overview.html  Qt – http://en.wikipedia.org/wiki/Qt_(toolkit)  Language Binding – http://en.wikipedia.org/wiki/Language_binding  Callback functions – http://en.wikipedia.org/wiki/Callback_(computer_science)  Manipulação de sinais – http://www.php-gtk.com.br/index.doc.php?doc=tutorials/tutorials.signals.html  Glade - Wikipedia – http://pt.wikipedia.org/wiki/Glade

Slide 22

Slide 22 text

Contato  E-mail – [email protected]  Blog – http://seekers-sanctuary.blogspot.com  LinkedIn – http://www.linkedin.com/in/maykeldossantosbraz