Your SlideShare is downloading. ×
0
Mini-tutorial de GTK+
Mini-tutorial de GTK+
Mini-tutorial de GTK+
Mini-tutorial de GTK+
Mini-tutorial de GTK+
Mini-tutorial de GTK+
Mini-tutorial de GTK+
Mini-tutorial de GTK+
Mini-tutorial de GTK+
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Mini-tutorial de GTK+

4,988

Published on

Como criar um widget em GTK+.

Como criar um widget em GTK+.

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
4,988
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
94
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Passos para criar um Widget com GTK <ul><li>1. Chame a função de criação do novo widget. </li></ul><ul><li>2. Defina os atributos do widget. </li></ul><ul><li>3. Conecte os sinais e eventos aos manipuladores apropriados. </li></ul><ul><li>4. Empacote o widget num container . </li></ul><ul><li>5. Mostre o widget. </li></ul>
  • 2. Passos para criar um Widget com GTK 1. Chame a função de criação do novo widget <ul><li>gtk_*_new() – Uma das várias funções para criar um novo widget: </li></ul><ul><ul><li>GtkWidget* gtk_window_new(...) </li></ul></ul><ul><ul><li>GtkWidget* gtk_label_new(...) </li></ul></ul><ul><ul><li>GtkWidget* gtk_button_new(...) </li></ul></ul><ul><li>Exemplos: </li></ul><ul><ul><li>janela = gtk_window_new(GTK_WINDOW_TOPLEVEL); </li></ul></ul><ul><ul><li>botao = gtk_button_new_with_label(&quot;Ok&quot;); </li></ul></ul>
  • 3. Passos para criar um Widget com GTK 2. Defina os atributos do widget. <ul><li>Alguns atributos de uma janela </li></ul><ul><ul><li>Título: void gtk_window_set_title(...) </li></ul></ul><ul><ul><li>Tamanho: void gtk_window_set_default_size(...) </li></ul></ul><ul><ul><li>Redimensionável: void gtk_window_set_resizable(...) </li></ul></ul><ul><li>Exemplos: </li></ul><ul><ul><li>gtk_window_set_title (GTK_WINDOW(window),”Olá”); </li></ul></ul><ul><ul><li>gtk_window_set_default_size (GTK_WINDOW(window),200, 100); </li></ul></ul><ul><ul><li>gtk_window_set_resizable (GTK_WINDOW(window),TRUE); </li></ul></ul>
  • 4. Passos para criar um Widget com GTK 3. Conecte os sinais e eventos aos manipuladores apropriados. <ul><li>g_signal_connect (objeto, sinal, função, dados) </li></ul><ul><ul><li>objeto: o objeto ao qual se quer conectar </li></ul></ul><ul><ul><li>sinal: uma string com o nome do sinal. </li></ul></ul><ul><ul><li>função: a função GCallback a ser conectada. </li></ul></ul><ul><ul><li>dados: dados a serem passados para função . </li></ul></ul><ul><ul><li>retorna: o id do manipulador. </li></ul></ul><ul><li>Exemplo: </li></ul><ul><ul><li>g_signal_connect(G_OBJECT (botao), &quot;clicked&quot;, G_CALLBACK (funcao), NULL); </li></ul></ul>
  • 5. Passos para criar um Widget com GTK 4. Empacote o widget num container . <ul><li>void gtk_container_add(GtkContainer *container, GtkWidget *widget); </li></ul><ul><ul><li>*container: um GtkContainer </li></ul></ul><ul><ul><li>*widget: um widget a ser colocado dentro do container </li></ul></ul><ul><li>Para containeres mais complicados como GtkBox ou GtkTable deve-se usar: </li></ul><ul><ul><li>void gtk_box_pack_start(...) </li></ul></ul><ul><ul><li>void gtk_table_attach(...) </li></ul></ul><ul><li>Exemplos: </li></ul><ul><ul><li>gtk_container_add(GTK_CONTAINER(janela), botao); </li></ul></ul>
  • 6. Passos para criar um Widget com GTK 5. Mostre o widget. <ul><li>void gtk_widget_show(GtkWidget *widget); Define um widget para ser exibido, do contrário ele não aparecerá na tela. </li></ul><ul><li>void gtk_widget_show_all(GtkWidget *widget); Mostra recursivamente um widget, e quaisquer widgets filhos (se o widget for um container ). </li></ul><ul><li>Exemplos: </li></ul><ul><ul><li>gtk_widget_show(botao); </li></ul></ul><ul><ul><li>gtk_widget_show(janela); </li></ul></ul><ul><ul><li>gtk_widget_show_all(janela); </li></ul></ul>
  • 7. exemplo.c gcc exemplo.c -o exemplo `pkg-config --cflags --libs gtk+-2.0` <ul><li>#include <gtk/gtk.h> </li></ul><ul><li>int main (int argc, char *argv[]) { </li></ul><ul><ul><li>GtkWidget *janela, *botao; </li></ul></ul><ul><ul><li>gtk_init(&argc, &argv); </li></ul></ul><ul><ul><li>janela = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(janela), &quot;Exemplo&quot;); gtk_window_set_default_size(GTK_WINDOW(janela), 200, 60); </li></ul></ul><ul><ul><li>botao = gtk_button_new_with_label(“Sair”); g_signal_connect(G_OBJECT(botao), &quot;clicked&quot;, G_CALLBACK(gtk_main_quit), NULL); </li></ul></ul><ul><ul><li>gtk_container_add(GTK_CONTAINER(janela), botao); </li></ul></ul><ul><ul><li>gtk_widget_show_all(janela); </li></ul></ul><ul><ul><li>gtk_main(); </li></ul></ul><ul><ul><li>return 0; } </li></ul></ul>
  • 8. <ul><li>#!/usr/bin/env python </li></ul><ul><li>import pygtk pygtk.require('2.0') import gtk </li></ul><ul><li>class Exemplo: </li></ul><ul><ul><li>def __init__(self): self.janela = gtk.Window(gtk.WINDOW_TOPLEVEL) self.janela.set_title(&quot;Exemplo&quot;) self.janela.set_default_size(200, 60) self.janela.connect(&quot;delete_event&quot;, gtk.main_quit) self.janela.connect(&quot;destroy&quot;, gtk.main_quit) </li></ul></ul><ul><ul><ul><li>self.botao = gtk.Button(&quot;Sair&quot;) self.botao.connect_object(&quot;clicked&quot;, gtk.Widget.destroy, self.janela) self.janela.add(self.botao) self.janela.show_all() </li></ul></ul></ul><ul><ul><li>def main(self): gtk.main() </li></ul></ul><ul><li>if __name__ == &quot;__main__&quot;: exemplo = Exemplo() exemplo.main() </li></ul>exemplo.py Agora, o mesmo exemplo em Python.
  • 9. Isso é tudo pessoal!

×