Introdução ao GTK
Está semana estaremos vendo como utilizar o Glade
para construir a interface gráfica de programas
utilizando a biblioteca GTK. O objetivo não é
aprender a programar utilizando esta biblioteca, e sim a
utilizar o Glade como ferramenta de programação que
irá construir a interface sem que seja preciso alterar
muito o código desta.
Antes de começarmos com o Glade, é preciso
entender como o GTK funciona. A biblioteca GTK é um
toolkit que oferece funções para criação
e gerenciamento de widgets (botões, barras de rolagem,
listas, ...). Cada vez que você cria um widget, este
precisa ser "conectado" a um sinal que irá ativar uma
função. Por exemplo, se criarmos um botão de
OK, precisamos conectar o sinal "clicked" (clicado) com uma
função, pois assim, quando o usuário clicar no
botão OK, esta mesma função (criada pelo
programador) será executada. Existem vários tipos
de sinais para cada tipo de widget. Veremos alguns deles mais
adiante.
Um programa em GTK inicia quando a função
"gtk_main_loop" é chamada, o que põe o programa em
loop esperando sinais dos widgets para executar as
funções conectadas a esse sinal para determinado
widget. O programa termina normalmente quando é chamada
a função "gtk_main_quit" ou o programa sai com a
função "exit".
Utilizando o Glade
Abrindo o Glade, nos aparecem 3 janelas: Glade,
Propriedades e Palheta. Na primeira, pode-se escolher abrir
ou salvar um projeto, além das opções de
projeto (nome, path, etc). Pode-se ainda ver as janelas
criadas para o projeto atual. Na janela Palheta temos uma
lista de widgets de GTK (Basic e Additional). Deixe o mouse
em cima do widget e espere o tooltip aparecer para saber o
nome do mesmo. Por fim, na janela Propriedades, alteramos
propriedades dos widgets e sinais conectados aos mesmos.
Vamos começar com um exemplo bem simples. Na janela
Palheta, clique no ícone do widget "janela" (o primeiro
da lista). Abre-se uma janela com o título "window1"
(note que na janela Glade ela está visível). Agora,
na janela Propriedades, veja o valor de "Name". Este
será o nome da variável em C que o projeto
dará a este widget. Altere-o se desejar. O valor de
"Title" altera o título desta janela. Ainda na janela
Propriedades, na tab "Common" pode-se definir o tamanho da
janela. Na tab "Signals" , clique no botão com três
pontos (Signal "..."). Aparecerá uma lista com os
possíveis sinais para conectar a este widget (janela).
Selecione "delete_event" e clique em OK. Este sinal
(delete_event) é recebido quando o usuário fecha a
janela. Como "Handler" para este sinal, coloque a
função "gtk_main_quit" (está na lista). Clique
em "Adicionar" (nunca esqueça de clicar no
"Adicionar"!). Acabamos de conectar o sinal "delete_event"
desta janela à funcao "gtk_main_quit" que finaliza o GTK
e sai do programa.