Sobre o GTK
O GTK é um toolkit de desenvolvimento de interface gráfica do usuário (GUI – Graphical User Interface) multiplataforma, escrito na linguagem de programação C.
A sigla GTK significa GIMP Toolkit, foi originalmente desenvolvido como parte do software de edição de imagens GIMP (GNU Image Manipulation Program), mas agora é usado em muitos outros projetos.
O GTK foi lançado pela primeira vez em 1998 como parte do GIMP 1.2 e se tornou um projeto independente em 1999, com a versão 1.0. Desde então, o GTK tem sido usado para desenvolver muitos outros aplicativos, como o GNOME (GNU Network Object Model Environment), um ambiente de desktop popular para sistemas Linux.
O GTK é escrito em C e é distribuído sob a Licença Pública Geral GNU LGPL, que permite seu uso e distribuição livre e gratuita.
Ele também possui bindings para outras linguagens de programação:
Posts relacionados:
Essas são as linguagens suportadas oficialmente, contudo existem bindings não oficiais.
Bibliotecas
O kit de ferramentas (toolkit) GTK tem um design modular, entre suas principais bibliotecas temos e módulos temos:
GTK
A biblioteca GTK constrói o núcleo do kit de ferramentas e contém todos os widgets.
GDK
O GDK fornece uma interface para desenhar gráficos em uma variedade de plataformas, incluindo X11, Wayland, Microsoft Windows e macOS.
Ele oferece suporte a recursos como janelas, eventos, gráficos 2D, imagens e manipulação de cores.
GdkPixbuf
A biblioteca GdkPixbuf permite o carregamento e manipulação de imagens (PNG, JPEG, GIF e etc).
GObject
A biblioteca GObject fornece uma API para programação orientada a objetos (OOP) na linguagem de programação C.
GLib
GLib é uma biblioteca de baixo nível que forma a base do GTK.
Ele fornece manipulação de estrutura de dados para C, wrappers de portabilidade e interfaces para funcionalidade de tempo de execução como um loop de eventos, threads, carregamento dinâmico e um sistema de objetos.
GIO
A biblioteca GIO implementa suporte a operações de entrada e saída (I/O, networking, IPC e etc).
GSK
A bliblioteca GSK é utilizada para otimizar o desenho e a atualização do widget.
Graphene
A biblioteca Graphene implementa o suporte a gráficos, vetores e matrizes.
ATK
A biblioteca ATK implementa o suporte a leitores de tela, ampliadores de texto (lupas) e dispositivos de entrada alternativos.
Cairo
Cairo é uma biblioteca para gráficos 2D com suporte para vários dispositivos de saída (incluindo o X Window System, Win32) ao mesmo tempo em que produz uma saída consistente em todas as mídias, aproveitando a aceleração do hardware de exibição quando disponível.
pango
Pango é uma biblioteca para layout e renderização de texto com ênfase na internacionalização. Ele forma o núcleo do manuseio de texto e fonte para GTK.
OpenGL e Vulkan
As bibliotecas OpenGL e Vulkan permitem a utilização da GPU.
Para sistemas Linux, existe mais uma camada de abstração entre o kit de ferramentas GTK e o hardware do computador, chamada Wayland.
Wayland é um protocolo de comunicação que especifica a comunicação entre um servidor de exibição e seus clientes, bem como uma implementação da biblioteca C desse protocolo.
Alguns sistemas Linux mais antigos ainda podem usar, em vez do moderno Wayland, o legado X Window System, que às vezes era chamado apenas de X11 ou X.
Principais Características do PyGObject
- Interface Pythonica: PyGObject expõe as bibliotecas GNOME de uma maneira que é natural para programadores Python, permitindo o uso de paradigmas de programação Python, como herança e tratamento de exceções.
- Acesso a Bibliotecas GNOME: Ele permite o acesso a uma ampla gama de bibliotecas GNOME, como GTK (para interfaces gráficas), GStreamer (para processamento de mídia), e outras bibliotecas de sistema e utilitários.
- Automatização de Bindings: Utiliza introspecção em tempo de execução para gerar bindings, facilitando a manutenção e reduzindo a necessidade de escrever manualmente grandes quantidades de código para integrar com bibliotecas C.
Usos Comuns do PyGObject
- Desenvolvimento de Interfaces Gráficas: Com GTK, é possível criar interfaces gráficas ricas e responsivas.
- Aplicações GNOME: Desenvolvimento de aplicações que se integram bem com o ambiente de desktop GNOME.
- Automação e Scripting: Usar bibliotecas GNOME para automatizar tarefas ou criar scripts poderosos em Python.
Sobre a biblioteca libadwaita
A biblioteca libadwaita é uma biblioteca de interface do usuário para o desenvolvimento de aplicativos GNOME, que foi introduzida com o GNOME 40.
Ela fornece um conjunto de widgets e componentes para construir interfaces do usuário modernas e consistentes para aplicativos GNOME.
A libadwaita tem como objetivo fornecer um conjunto de diretrizes de design e estilo para aplicativos GNOME.
Ela inclui um conjunto de widgets que seguem essas diretrizes e um tema de estilo que pode ser aplicado a toda a interface do usuário do aplicativo.
A biblioteca também fornece recursos para garantir que os aplicativos sejam acessíveis e utilizáveis em dispositivos móveis e desktops, bem como recursos para lidar com idiomas e scripts da direita para a esquerda.
A libadwaita é uma parte importante do esforço do GNOME para fornecer uma experiência de usuário consistente e coesa em todo o sistema operacional GNOME e seus aplicativos.
É projetada para ser fácil de usar para os desenvolvedores, permitindo que eles criem interfaces do usuário atraentes e funcionais sem precisar se preocupar muito com detalhes de implementação.
Bônus
GTK
Libadwaita
GNOME
Desenvolvimento
- GNOME Builder.
- Workbench.
- Cambalache.
- Icon Library.
- Typography.
- App Icon Preview.
- Symbolic Preview.
- Color Palette.
- Gnome icon library online.