desenvolvendo gui com gtk+ - frederico schardong

Download Desenvolvendo GUI com GTK+ - Frederico Schardong

If you can't read please download the document

Upload: tchelinux-slides

Post on 16-Apr-2017

2.010 views

Category:

Technology


0 download

TRANSCRIPT

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]

[email protected]

[email protected]

[email protected]

Muokkaa otsikon tekstimuotoa napsauttamalla

Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso