Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Desenvolvendo aplicações desktop com PHP-GTK

Desenvolvendo aplicações desktop com PHP-GTK

Entenda como criar telas para a sua aplicação com PHP, GTK e Glade. Construa e distribua suas aplicações para execução direta em interface gráfica em um OS que tenha o PHP instalado.

Talk realizada no FLISOL 2009, em Taguatinga-DF. https://flisol.info/
Publicação original dos slides: http://bit.ly/30JqlWv

Maykel Santos Braz

April 25, 2009
Tweet

More Decks by Maykel Santos Braz

Other Decks in Programming

Transcript

  1. 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)
  2. 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
  3. 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 – ????
  4. 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
  5. 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 <?php $janela = new GtkWindow; $janela->show_all(); Gtk::Main(); ?> Fonte: Código de teste – PHP-GTK Brasil
  6. PHP-GTK  Principais conceitos – Widgets: Componentes da interface. Podem

    ser visuais ou não; – Sinais: Mensagens emitidas pelos widgets;
  7. 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...
  8. Widgets – Empacotamento  Empacotamento – Limitado pela estrutura do

    contêiner; – Espaçamento e dimensões adaptados à estrutura do contêiner;
  9. Widgets – Posicionamento  Posicionamento – Limitado pelo tamanho da

    janela; – Espaçamento e dimensões definidas pelo usuário;
  10. Exemplo de código: Tratando sinais  connect_simple(); – int connect_simple(string,

    callback[, mixed[, ...]]);  connect(); – int connect(string, callback[, mixed[, ...]]);
  11. Glade – Criador de GUIs  Agiliza a criação de

    GUIs;  Independente de linguagens de programação;  gladeXML.
  12. 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
  13. 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