Desenvolvendo GUI com GTK+
História    GIMP (GNU Image Manipulator Program)     criado em 1995.    GTK (GIMP Toolkit) foi lançado em 1998        C...
Casos de sucesso    GIMP
Casos de sucesso    GNOME
Casos de sucesso    MAEMO
Casos de sucesso    Firefox
Características do GTK+    Multiplataforma    Multithread    Orientado a eventos    Orientado a objeto    Escrito em ...
Multiplataforma    Cairo para desenhos básicos    Pango para renderizar e formatar textos    GLib para o baixo nível   ...
Look and feel
Conceitos básicos        Widget (window gadget)            Componente básico de uma GUI            Segue conceito da PO...
Binds
Hello World pyGTK#!/usr/bin/env python#coding: utf-8#Importa o GTK+ 2import pygtkpygtk.require(2.0)import gtk#Cria o callb...
Hello World PHP-GTK<?#Cria o callback chamado no evento "clicked" do botão.function onClick(){  echo "Hello Worldn";}#Cria...
Hello World C-GTK//Inclui o GTK+ 2#include <gtk-2.0/gtk/gtk.h>//Cria o callback chamado no evento "clicked" do botão.void ...
Glade
Glade <?php $glade = new GladeXML(teste.glade); $botao = $glade->get_widget(button); $label = $glade->get_widget(label); $...
Qual bind escolher?    O melhor para sua necessidade
GTK+ e openGL = GtkGLExt
Obrigado       Contato:           frede.sch@gmail.com       Listas           pygtk@daa.com.au           gtk-list@gnom...
Upcoming SlideShare
Loading in …5
×

GTK

690 views

Published on

gtk

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
690
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

GTK

  1. 1. Desenvolvendo GUI com GTK+
  2. 2. História  GIMP (GNU Image Manipulator Program) criado em 1995.  GTK (GIMP Toolkit) foi lançado em 1998  Criado para substituir o Motif  GTK+ 2 foi lançado em 2002  Multithread  Novos componentes  Incompatível com GTK 1
  3. 3. Casos de sucesso  GIMP
  4. 4. Casos de sucesso  GNOME
  5. 5. Casos de sucesso  MAEMO
  6. 6. Casos de sucesso  Firefox
  7. 7. Características do GTK+  Multiplataforma  Multithread  Orientado a eventos  Orientado a objeto  Escrito em C  Bem documentado
  8. 8. Multiplataforma  Cairo para desenhos básicos  Pango para renderizar e formatar textos  GLib para o baixo nível  Multi-thread  Multi-plataforma
  9. 9. Look and feel
  10. 10. Conceitos básicos  Widget (window gadget)  Componente básico de uma GUI  Segue conceito da POO  Sinais  Eventos disparados por widgets  Interação homem-máquina  Callback  Funções chamadas para tratar os sinais  Laço principal do GTK+ espera o retorno da função
  11. 11. Binds
  12. 12. Hello World pyGTK#!/usr/bin/env python#coding: utf-8#Importa o GTK+ 2import pygtkpygtk.require(2.0)import gtk#Cria o callback chamado no evento "clicked" do botão.def onClick(self, widget, data=None): print "Hello World"#Cria o botão com labelbutton = gtk.Button("Hello World")#Altera o tamanho do botãobutton.set_size_request(200, 70)#Conecta o sinal "clicked" do botão ao callback "onClick"button.connect("clicked", onClick, None)#Cria a janelawindow = gtk.Window(gtk.WINDOW_TOPLEVEL)#Seta o títulowindow.set_title("Tchelinux");#Conecta o sinal de destruir ao método de encerrar o GTK+window.connect("destroy", gtk.main_quit)#Adiciona o botão a janelawindow.add(button)#Mostra a janela com o botãowindow.show_all()#Inicia o GTK+gtk.main()
  13. 13. Hello World PHP-GTK<?#Cria o callback chamado no evento "clicked" do botão.function onClick(){ echo "Hello Worldn";}#Cria o botão com label$botao = new GtkButton(Hello World);#Altera o tamanho do botão$botao->set_size_request(200, 70);#Conecta o sinal "clicked" do botão ao callback "hello"$botao->connect(clicked, onClick);#Cria a janela$janela = new GtkWindow();#Seta o título$janela->set_title(Tchelinux);#Conecta o sinal de destruir ao método de encerrar o GTK+$janela->connect(destroy, array(gtk, main_quit));#Adiciona o botão a janela$janela->add($botao);#Mostra a janela com o botão$janela->show_all();#Inicia o GTK+Gtk::main();?>
  14. 14. Hello World C-GTK//Inclui o GTK+ 2#include <gtk-2.0/gtk/gtk.h>//Cria o callback chamado no evento "clicked" do botão.void onClick(GtkWidget *w, gpointer p){ g_print("Hello worldn");}void main(int argc, char **argv) //default main function{ //Cria os widgets GtkWidget *window, *button; //Incia o GTK+ gtk_init(&argc, &argv); //Cria o botão com label button = gtk_button_new_with_label("Hello world"); //Altera o tamanho do botão gtk_widget_set_size_request(button, 200, 70); //Conecta o sinal "clicked" do botão ao callback "hello" gtk_signal_connect(GTK_OBJECT(button), "clicked", onClick, NULL); //Cria a janela window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //Seta o título gtk_window_set_title(GTK_WINDOW(window), "Tchelinux"); //Conecta o sinal de destruir ao método de encerrar o GTK+ gtk_signal_connect(GTK_OBJECT(window), "destroy", gtk_main_quit, NULL); //Adiciona o botão a janela gtk_container_add(GTK_CONTAINER(window), button); //Mostra a janela com o botão gtk_widget_show_all(window); //Inicia o GTK+ gtk_main();}
  15. 15. Glade
  16. 16. Glade <?php $glade = new GladeXML(teste.glade); $botao = $glade->get_widget(button); $label = $glade->get_widget(label); $botao->connect_simple(clicked, hello_world, $label); function hello_world($label) { $label->set_text(Hello World); } Gtk::Main(); ?>
  17. 17. Qual bind escolher?  O melhor para sua necessidade
  18. 18. GTK+ e openGL = GtkGLExt
  19. 19. Obrigado  Contato:  frede.sch@gmail.com Listas  pygtk@daa.com.au  gtk-list@gnome.org  phpgtk@googlegroups.com

×