GTK

Origem: Wikipédia, a enciclopédia livre.
Saltar para a navegação Saltar para a pesquisa
GTK
Logótipo
Captura de tela
gtk3-widget-factory, é uma coleção de exemplos que demonstram muitos dos widgets da GUI do GTK
Desenvolvedor The GNOME Project
Plataforma Multiplataforma
Lançamento 14 de abril de 1998 (22 anos)
Versão estável 3.24.22 (10 de agosto de 2020; há 4 dias[1])
Versão em teste 3.99.0 (30 de julho de 2020; há 15 dias[1])
Linguagem C[2]
Sistema operativo Multiplataforma
Gênero(s) Toolkit de widgets
Licença GNU LGPLv2.1+
Estado do desenvolvimento Ativo
Página oficial www.gtk.org

GTK (anteriormente GTK+ e GIMP Toolkit) é um toolkit multiplataforma para a criação de interfaces gráficas. É liberado sob a licença GNU LGPL, permitindo que software proprietários e livres o utilizem em sua construção. É software livre e integra o projeto GNU. Foi desenvolvido inicialmente para o GIMP, por isso foi batizado de GIMP toolkit, com abreviação GTK+. Foi desenvolvido originalmente por Peter Mattis, Spencer Kimball e Josh MacDonald[3].

GTK e Qt suplantaram outros toolkits e hoje são os dois conjuntos de widgets mais usados para as plataformas X11[4] e Wayland[5]. O GTK é muito popular, sendo usado em um grande número de aplicações e no ambiente de desktop GNOME (que por sua vez também é muito popular).

Design[editar | editar código-fonte]

GTK é escrito em C e seu design é orientado a objeto com base no sistema de objetos da biblioteca GLib. Existem interfaces para construção de programas GTK para Python, JavaScript, C++, Rust, Vala, entre outras linguagens.[6][7]

É possível customizar a aparência do toolkit por completo através de temas compostos de imagens e CSS. Também é possível alterar a forma com que widgets são desenhados através do uso de engines. Existem engines emulando a aparência de outros populares toolkits ou plataformas como Windows 95, Qt, ou NEXTSTEP.

Usos[editar | editar código-fonte]

Aplicativos[editar | editar código-fonte]

Alguns aplicativos notáveis que usam ou uma vez usaram o GTK como toolkit de widget incluem:

Ambientes de desktop[editar | editar código-fonte]

Vários ambientes de desktop utilizam o GTK como o kit de ferramentas de widgets.

Ativos[editar | editar código-fonte]

  • GNOME, baseado no GTK, o que significa que os programas nativos do GNOME usam o GTK
  • Budgie, construído a partir do zero para o sucessor do SolusOS, Solus Operating System
    • Planejando para portar e focar no Qt
  • Cinnamon, um fork do GNOME 3 e usa o GTK+ versão 3
  • MATE, um fork do GNOME 2, que foi atualizado para suportar o GTK+ 3
  • Xfce, atualmente baseado no GTK+ 2 com suporte e eventuais planos de migração para o GTK+ 3
  • Pantheon usa exclusivamente o GTK+ 3, sendo desenvolvido pelo elementary OS
  • Sugar, um ambiente de desktop voltado para a educação infantil, que usa o GTK, especialmente PyGTK
  • KDE, embora baseado em Qt, tem integração com programas e temas escritos em GTK desde a versão 4.2

Inativos[editar | editar código-fonte]

Diversos[editar | editar código-fonte]

Os programas GTK podem ser executados em ambientes de desktop baseados em X11 ou gerenciadores de janelas, mesmo aqueles que não são feitos com o GTK, desde que as bibliotecas necessárias estejam instaladas; isso inclui o macOS se o X11.app estiver instalado. O GTK + também pode ser executado no Microsoft Windows, onde é usado por alguns aplicativos populares multiplataforma, como o Pidgin e o GIMP. O wxWidgets, um kit de ferramentas de interface multiplataforma, usa o GTK no Linux.[8] Outros portes incluem o DirectFB (usado pelo instalador do Debian, por exemplo) e ncurses.[9]

Exemplo[editar | editar código-fonte]

#include <gtk/gtk.h>

static void on_activate (GtkApplication *app) {
  // Cria uma nova janela
  GtkWidget *window = gtk_application_window_new (app);

  // Cria um novo botão
  GtkWidget *button = gtk_button_new_with_label ("Olá, Mundo!");

  // Quando o botão é clicado, destrói a janela passada como um argumento
  g_signal_connect_swapped (button,
                            "clicked",
                            G_CALLBACK (gtk_widget_destroy),
                            window);
  gtk_container_add (GTK_CONTAINER (window), button);
  gtk_widget_show_all (window);
}

int main (int argc, char *argv[]) {
  // Cria um novo aplicativo
  GtkApplication *app = gtk_application_new ("com.example.Hello",
                                             G_APPLICATION_FLAGS_NONE);
  g_signal_connect (app, "activate", G_CALLBACK (on_activate), NULL);
  return g_application_run (G_APPLICATION (app), argc, argv);
}

Versões[editar | editar código-fonte]

GTK+ 1

O GTK+ foi originalmente projetado e usado no GNU Image Manipulation Program (GIMP) como um substituto do kit de ferramentas Motif; em algum momento, Peter Mattis ficou desencantado com o Motif e começou a escrever seu próprio kit de ferramentas GUI, chamado GIMP toolkit, e substituiu o Motif pelo GTK no GIMP na versão 0.60.[10] Finalmente, o GTK foi reescrito para ser orientado a objetos e foi renomeado como GTK+.[11] Ele foi usado pela primeira vez na versão 0.99 do GIMP. O GTK+ foi posteriormente adotado para manutenção pela GNOME Foundation, que o utiliza no ambiente de desktop GNOME.

GTK+ 2

GTK+ 2 é o sucessor do GTK+. Suas novas características incluem o Pango, um novo engine para temas, acessibilidade usando ATK, completa transição para Unicode usando UTF-8 para strings e um API flexível. Entretanto, o GTK+ 2 não é compatível com o GTK+ 1 e suas aplicações precisam ser portadas a ele. O GTK+ 1 é menos complexo que o GTK+ 2.

GTK+ 3

GTK+ 3 é o sucessor do GTK+ 2. Suas novas características incluem o Cairo (para desenhar elementos gráficos), XI2 (XInput2, para o processamento de eventos de dispositivo de entrada) e etc.

Ver também[editar | editar código-fonte]

Referências

  1. a b «Tags · GNOME / gtk». gitlab.gnome.org (em inglês). Consultado em 14 de agosto de 2020 
  2. «The GTK+ Open Source Project» (em inglês). Open Hub. Consultado em 26 de março de 2018 
  3. GTK+ FAQ, Authors [GTK 2.x] (a FAQ menciona os autores do GTK)
  4. «Developing X applications» (em inglês) 
  5. «Toolkits». wayland.freedesktop.org. Freedesktop.org. Consultado em 26 de novembro de 2019 
  6. «Language Bindings». www.gtk.org (em inglês). Consultado em 30 de março de 2020 
  7. «Bindings based on GObject-Introspection». gi.readthedocs.io (em inglês). Consultado em 30 de março de 2020 
  8. «GTK+». WxWidgets Compared To Other Toolkits 
  9. «GTK+ TTY Port». Slashdot. Consultado em 19 de setembro de 2018 
  10. «LinuxWorld - Where did Spencer Kimball and Peter Mattis go?». Consultado em 19 de setembro de 2018. Arquivado do original em 17 de abril de 1999 
  11. «What is the + in GTK+?». 2011. Consultado em 19 de setembro de 2018. Arquivado do original em 26 de março de 2012 

Ligações externas[editar | editar código-fonte]

Wikilivros
O Wikilivros tem um livro chamado GTK+