Mini-tutorial de GTK+

download Mini-tutorial de GTK+

If you can't read please download the document

description

Como criar um widget em GTK+.

Transcript of Mini-tutorial de GTK+

  • 1. Passos para criar um Widget com GTK
    • 1.Chame a funo decriaodo novo widget.
  • 2.Defina osatributosdo widget.
  • 3.Conecte ossinais e eventosaosmanipuladoresapropriados.
  • 4. Empacoteo widget numcontainer .
  • 5. Mostreo widget.

2. Passos para criar um Widget com GTK 1.Chame a funo decriaodo novo widget

  • gtk_*_new() Uma das vrias funes para criar um novo widget:
    • GtkWidget* gtk_window_new(...)
    • GtkWidget* gtk_label_new(...)
    • GtkWidget* gtk_button_new(...)
  • Exemplos:
    • janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    • botao = gtk_button_new_with_label("Ok");

3. Passos para criar um Widget com GTK 2.Defina osatributosdo widget.

  • Alguns atributos de uma janela
    • Ttulo:void gtk_window_set_title(...)
    • Tamanho:void gtk_window_set_default_size(...)
    • Redimensionvel:void gtk_window_set_resizable(...)
  • Exemplos:
    • gtk_window_set_title (GTK_WINDOW(window),Ol);
    • gtk_window_set_default_size (GTK_WINDOW(window),200, 100);
    • gtk_window_set_resizable (GTK_WINDOW(window),TRUE);

4. Passos para criar um Widget com GTK 3.Conecte ossinais e eventosaosmanipuladoresapropriados.

  • g_signal_connect (objeto, sinal, funo, dados)
    • objeto:o objeto ao qual se quer conectar
    • sinal:uma string com o nome do sinal.
    • funo:a funo GCallback a ser conectada.
    • dados: dados a serem passados parafuno .
    • retorna:o id do manipulador.
  • Exemplo:
    • g_signal_connect(G_OBJECT (botao), "clicked",G_CALLBACK (funcao), NULL);

5. Passos para criar um Widget com GTK 4. Empacoteo widget numcontainer .

  • void gtk_container_add(GtkContainer *container, GtkWidget *widget);
    • *container:umGtkContainer
    • *widget:um widget a ser colocado dentro docontainer
  • Paracontaineresmais complicados como GtkBox ou GtkTable deve-se usar:
    • void gtk_box_pack_start(...)
    • void gtk_table_attach(...)
  • Exemplos:
    • gtk_container_add(GTK_CONTAINER(janela), botao);

6. Passos para criar um Widget com GTK 5. Mostreo widget.

  • void gtk_widget_show(GtkWidget *widget); Define um widget para ser exibido, do contrrio ele no aparecer na tela.
  • void gtk_widget_show_all(GtkWidget *widget); Mostra recursivamente um widget, e quaisquer widgets filhos (se o widget for umcontainer ).
  • Exemplos:
    • gtk_widget_show(botao);
    • gtk_widget_show(janela);
    • gtk_widget_show_all(janela);

7. exemplo.c gcc exemplo.c -o exemplo `pkg-config --cflags --libs gtk+-2.0`

  • #include
  • int main (int argc, char *argv[]) {
    • GtkWidget *janela, *botao;
    • gtk_init(&argc, &argv);
    • janela = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(janela), "Exemplo"); gtk_window_set_default_size(GTK_WINDOW(janela), 200, 60);
    • botao = gtk_button_new_with_label(Sair); g_signal_connect(G_OBJECT(botao), "clicked", G_CALLBACK(gtk_main_quit), NULL);
    • gtk_container_add(GTK_CONTAINER(janela), botao);
    • gtk_widget_show_all(janela);
    • gtk_main();
    • return 0; }

8.

  • #!/usr/bin/env python
  • import pygtk pygtk.require('2.0') import gtk
  • class Exemplo:
    • def __init__(self): self.janela = gtk.Window(gtk.WINDOW_TOPLEVEL) self.janela.set_title("Exemplo") self.janela.set_default_size(200, 60) self.janela.connect("delete_event", gtk.main_quit) self.janela.connect("destroy", gtk.main_quit)
      • self.botao = gtk.Button("Sair") self.botao.connect_object("clicked", gtk.Widget.destroy, self.janela) self.janela.add(self.botao) self.janela.show_all()
    • def main(self): gtk.main()
  • if __name__ == "__main__": exemplo = Exemplo() exemplo.main()

exemplo.py Agora, o mesmo exemplo em Python. 9. Isso tudo pessoal!