Mini-tutorial de GTK+
-
Upload
marcelo-lira -
Category
Technology
-
view
4.978 -
download
3
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!