Hospedagem com suporte a Python e Django!
Hospedagem com suporte a Python e Django!

Como criar interfaces gráficas com Python, PyGObject e GTK

Toolkit gráfico GTK.

Hoje veremos como criar uma interface gráfica utilizando a linguagem de programação Python, o binding PyGObject e o tookit 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:

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.


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

Produtos com super desconto na Amazon!
Produtos com super desconto na Amazon!