Obra: GTK+/Introdução
capítulo introdução gtk gimp toolkit kit de ferramentas do gimp uma biblioteca para criar interfaces gráficas de usuário licenciado pela licença lgpl portanto você pode desenvolver com gtk software aberto livre ou mesmo comercial não livre sem ter de gastar nada com licenças ou royalties ele chamado de kit de ferramentas do gimp porque foi originalmente escrito para desenvolvimento do gnu image manipulation program gimp mas atualmente usado em um grande número de projetos de software incluindo projeto gnu network object model environment gnome gtk construído sobre gdk gimp drawing kit kit de desenho do gimp que basicamente um intermediário das funções de baixo nível para acesso das funções de gerenciamento de janelas xlib no caso do sistema de janelas sobre gdk pixbuf uma biblioteca para manipulação de imagens no lado do cliente gtk essencialmente uma interface de programação de aplicativos api orientada objetos embora completamente escrita em implementada usando idéia de classes funções callback ponteiros para funções também há um terceiro componente chamado glib que contém algumas funções substitutas para algumas chamadas padrão assim como algumas funções adicionais para lidar com listas ligadas linked lists etc as funções substitutas são usadas para aumentar portabilidade do gtk já que algumas das funções nele implementadas como g_strerror não estão disponíveis ou não são padrão em alguns sistemas unix há também algumas que contêm melhorias em relação às correspondentes na libc como g_malloc que tem suporte melhorado depuração na versão glib absorveu sistema de tipos que forma base da hierarquia de classes do gtk sistema de sinais usado por todo gtk uma api de threads que abstrai as diferentes apis nativas de threads das várias plataformas um método de carregar módulos como último componente gtk usa biblioteca pango para saída de texto este tutorial descreve interface do gtk há bindings do gtk para muitas outras linguagens de programação incluindo guile perl python tom ada objective free pascal eiffel java se você pretende usar bindings do gtk para outras linguagens leia primeiro documentação do binding em alguns casos essa documentação descreve algumas convenções importantes de que você deveria saber primeiro depois você pode voltar este tutorial há também algumas apis multiplataforma como wxwidgets que usam gtk como uma de suas plataformas novamente consulte sua documentação primeiro se você está desenvolvendo seu aplicativo gtk em há algumas notas mais se fazer existe um binding para gtk chamado gtk gtkmm que proporciona uma interface ao gtk num estilo mais próximo do provavelmente que você deve procurar se você não gosta desse método por qualquer razão há duas maneiras de usar gtk ao comunicar se com gtk usar apenas parte do que comum ele ao usando interface descrita neste tutorial usar gtk juntos declarando todos os callbacks como funções estáticas em classes novamente fazer chamadas ao gtk usando interface se você escolher este segundo m
státicas em classes novamente fazer chamadas ao gtk usando interface se você escolher este segundo método você pode incluir como valor de dado dos callbacks um ponteiro para objeto ser manipulado ponteiro this escolha entre essas opções apenas questão de preferência nos três casos você estará usando gtk nenhum desses métodos requer uso de um pré processador especializado então você sempre poderá usar padrão como gtk este tutorial uma tentativa de documentar máximo possível do gtk mas não de maneira alguma completo ele assume um bom entendimento da linguagem de como criar programas em seria de grande benefício para leitor ter experiência de programação com mas não deve ser necessário se você está aprendendo gtk como primeira biblioteca de widgets por favor comente sobre que você achou deste tutorial sobre as dificuldades que você teve há também bindings para objective ada guile outras linguagens mas eles não serão seguidos aqui este documento um trabalho em progresso por favor procure por atualizações em http www gtk org original em inglês ou http pt wikibooks org wiki gtk tradução para português gostaríamos muito de ouvir quaisquer problemas que você tenha tido ao aprender gtk deste documento apreciaria sugestões de como ele pode ser melhorado por favor veja seção contribuindo para mais informações