GTK+/Começando: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
m Revertidas edições por 200.101.34.250, para a última versão por Scorpion
Edudobay (discussão | contribs)
Sem resumo de edição
Linha 1:
= Capítulo 3. Começando =
 
A primeira coisa a fazer, é claro, é descarregar o código-fonte do GTK e instalá-lo. Você sempre poderá obter a última versão de ftp://ftp.gtk.org. Você também pode ver outras fontes de informação sobre o GTK em http://www.gtk.org/ (em inglês). O GTK usa o GNU autoconf para a configuração. Assim que desempacotar o código-fonte, digite <tt>./configure --help</tt> para ver uma lista de opções.
 
A distribuição do código-fonte do GTK também contém o código completo para todos os exemplos usados neste tutorial, além de Makefiles para ajudar na compilação.
 
Também é possível usar distribuições binárias, disponíveis para várias distribuições de Linux e sistemas Unix (consulte o sistema de pacotes da sua distribuição) e para ambiente Windows.
 
Para iniciar nossa introdução ao GTK, começaremos com o programa mais simples possível. Ele criará uma janela de 200x200 pixels e não terá nenhuma maneira de ser terminado, a não ser pelo ''shell'' ou por algum gerenciador de processos.
 
#include <gtk/gtk.h>
int main( int argc,
char *argv[] )
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
 
Você pode compilar o programa acima com o GCC com o comando:
 
gcc base.c -o base `pkg-config --cflags --libs gtk+-2.0`
 
O significado das opções não usuais de compilação está explicado abaixo, em "Compilando o Hello World".
 
Todos os programas irão, é claro, incluir o arquivo <tt>gtk/gtk.h</tt>, que declara as variáveis, funções, estruturas, etc. que serão usadas na sua aplicação GTK.
 
A linha seguinte:
 
gtk_init (&argc, &argv);
 
chama a função gtk_init(gint *argc, gchar ***argv), que será chamada em todas as aplicações GTK. Ela ajusta algumas coisas para nós, como a aparência padrão e os mapas de cores, e depois segue para chamar gdk_init(gint *argc, gchar ***argv). Esta função inicializa a biblioteca para uso, configura os tratadores padrão de sinal, e verifica os argumentos passados para sua aplicação na linha de comando, procurando por um dos seguintes:
 
* <tt>--gtk-module</tt>
* <tt>--g-fatal-warnings</tt>
* <tt>--gtk-debug</tt>
* <tt>--gtk-no-debug</tt>
* <tt>--gdk-debug</tt>
* <tt>--gdk-no-debug</tt>
* <tt>--display</tt>
* <tt>--sync</tt>
* <tt>--name</tt>
* <tt>--class</tt>
 
A função remove esses itens da lista de argumentos, deixando tudo o que não reconhecer para sua aplicação interpretar ou ignorar. Isso cria um conjunto de argumentos padrão aceitados por todas as aplicações GTK.
 
As próximas duas linhas de código criam e exibem uma janela.
 
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
 
O argumento GTK_WINDOW_TOPLEVEL especifica que queremos que a janela seja submetida à decoração e ao posicionamento do gerenciador de janelas. Em vez de criar uma janela de tamanho 0x0, uma janela sem controles (widgets) é ajustada para 200x200 por padrão de modo que você ainda possa manipulá-la.
 
A função gtk_widget_show() deixa o GTK saber que terminamos de ajustar os atributos deste widget, e que ele pode agora ser exibido.
 
A última linha é responsável por entrar no ''loop'' de processamento principal do GTK.
 
gtk_main ();
 
gtk_main() é outra chamada que você verá em toda aplicação GTK. Quando o controle chega a esse ponto, o GTK irá apenas ficar à espera de eventos do X (como o apertamento de botões ou teclas), tempos-limite ou notificações de E/S em arquivos. No nosso exemplo simples, no entanto, os eventos são ignorados.
 
 
== Hello World em GTK ==
 
== Compilando o Hello World ==
 
== Teoria dos sinais e dasdos rechamadascallbacks ==
 
== Eventos ==