Conhecendo o toolkit gráfico GTK

Toolkit gráfico GTK.

Sobre o GTK

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

    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

    1. 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.
    2. 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.
    3. 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

    Softwares

    Flatpak

    Visual Studio Code