Desenvolvendo GUI com GTK+ - Frederico Schardong
-
Upload
tchelinux-slides -
Category
Technology
-
view
2.014 -
download
0
Transcript of Desenvolvendo GUI com GTK+ - Frederico Schardong
Desenvolvendo GUI com GTK+
Histria
GIMP (GNU Image Manipulator Program) criado em 1995.
GTK (GIMP Toolkit) foi lanado em 1998Criado para substituir o Motif
GTK+ 2 foi lanado em 2002Multithread
Novos componentes
Incompatvel com GTK 1
Casos de sucesso
GIMP
Casos de sucesso
GNOME
Casos de sucesso
MAEMO
Casos de sucesso
Firefox
Caractersticas do GTK+
Multiplataforma
Multithread
Orientado a eventos
Orientado a objeto
Escrito em C
Bem documentado
Multiplataforma
GDK (GIMP Drawing Kit) e Cairo para desenhos bsicos
Pango para renderizar e formatar textos
GLib para o baixo nvelMultithread
Look and feel
Conceitos bsicos
Widget (window gadget)Componente bsico de uma GUI
Segue conceito da POO
SinaisEventos disparados por widgets
Interao homem-mquina
CallbackFunes chamadas para tratar os sinais
Lao principal do GTK+ espera o retorno da funo
Binds
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 boto.def onClick(self, widget, data=None): print "Hello World"
#Cria o boto com labelbutton = gtk.Button("Hello World")
#Altera o tamanho do botobutton.set_size_request(200, 70)
#Conecta o sinal "clicked" do boto ao callback "onClick"button.connect("clicked", onClick, None)
#Cria a janelawindow = gtk.Window(gtk.WINDOW_TOPLEVEL)
#Seta o ttulowindow.set_title("Tchelinux");
#Conecta o sinal de destruir ao mtodo de encerrar o GTK+window.connect("destroy", gtk.main_quit) #Adiciona o boto a janelawindow.add(button)
#Mostra a janela com o botowindow.show_all()
#Inicia o GTK+gtk.main()
Hello World PHP-GTK
Hello World C-GTK
//Inclui o GTK+ 2#include
//Cria o callback chamado no evento "clicked" do boto.void onClick(GtkWidget *w, gpointer p){ g_print("Hello world\n");}
void main(int argc, char **argv) //default main function{ //Cria os widgets GtkWidget *window, *button;
//Incia o GTK+ gtk_init(&argc, &argv);
//Cria o boto com label button = gtk_button_new_with_label("Hello world");
//Altera o tamanho do boto gtk_widget_set_size_request(button, 200, 70);
//Conecta o sinal "clicked" do boto ao callback "hello" gtk_signal_connect(GTK_OBJECT(button), "clicked", onClick, NULL);
//Cria a janela window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
//Seta o ttulo gtk_window_set_title(GTK_WINDOW(window), "Tchelinux");
//Conecta o sinal de destruir ao mtodo de encerrar o GTK+ gtk_signal_connect(GTK_OBJECT(window), "destroy", gtk_main_quit, NULL); //Adiciona o boto a janela gtk_container_add(GTK_CONTAINER(window), button);
//Mostra a janela com o boto gtk_widget_show_all(window);
//Inicia o GTK+ gtk_main();}
Qual bind escolher?
O melhor para sua necessidade
Glade
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();?>
GTK+ e openGL = GtkGLExt
Obrigado
Contato:[email protected]
Muokkaa otsikon tekstimuotoa napsauttamalla
Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso