Pitão

Como criar um aplicativo simples em Python e GTK3

Como criar um aplicativo simples em Python e GTK3
Este artigo explicará como criar um aplicativo gráfico “Hello World” no Linux usando a linguagem de programação Python 3 e o framework GTK3 GUI. Todos os exemplos de código no tutorial são testados com Python 3.8.6 e GTK 3.24.23 no Ubuntu 20.10.

Instale os pacotes necessários

Para criar um aplicativo usando Python 3 e GTK3, você precisa instalar ligações Python para bibliotecas GObject. Isso pode ser feito instalando o pacote PyGObject incluído nos repositórios de quase todas as principais distribuições Linux. Para instalar essas dependências no Ubuntu, você pode usar o comando abaixo:

$ sudo apt install python3 python3-gi

Você também pode compilar o PyGObject a partir do código-fonte disponível aqui.

Código completo do aplicativo Hello World

Exemplo de código completo de um aplicativo Hello World escrito em Python 3 e GTK3 pode ser encontrado abaixo. Este aplicativo envia um “Hello World !!”Notificação na área de trabalho com o clique de um botão.

importar gi
kimono.require_version ("Gtk", "3.0 ")
kimono.require_version ('Notificar', '0.7 ')
de kimono.repositório importar Gtk
de kimono.Importação de repositório Notificar
classe MyWindow (Gtk.Janela):
def __init __ (self):
Gtk.Janela.__init __ (self, title = "Hello World")
Gtk.Janela.set_default_size (self, 640, 480)
Notificar.init ("Aplicativo GTK3 Simples")
auto.box = Gtk.Caixa (espaçamento = 6)
auto.add (self.caixa)
auto.botão = Gtk.Botão (rótulo = "Clique aqui")
auto.botão.set_halign (Gtk.Alinhar.CENTRO)
auto.botão.set_valign (Gtk.Alinhar.CENTRO)
auto.botão.conectar ("clicado", self.on_button_clicked)
auto.caixa.pack_start (self.botão, verdadeiro, verdadeiro, 0)
def on_button_clicked (self, widget):
n = Notificar.Notificação.novo ("Simple GTK3 Application", "Hello World !!")
n.mostrar()
win = MyWindow ()
vencer.conectar ("destruir", Gtk.main_quit)
vencer.mostre tudo()
Gtk.a Principal()

Captura de tela do resultado final.

A notificação na área de trabalho que chega quando o botão “Clique aqui” é clicado:

Explicação passo a passo

Várias instruções de "importação" nas primeiras linhas do código importam os módulos necessários para que o aplicativo funcione. Esses módulos expõem várias classes e funções que podem ser usadas dentro do aplicativo. “Gi.as declarações de require_version ”garantem que apenas a versão necessária da biblioteca seja importada para evitar problemas de compatibilidade e travamentos. Neste caso “3.0 ”é usado para garantir que a biblioteca GTK3 seja usada no aplicativo e não GTK2 ou qualquer outra versão do GTK.

Semelhante à classe GTK, a classe Notify também é importada especificando sua versão necessária (0.7 é a versão mais recente no momento em que este artigo foi escrito). Esta classe será usada posteriormente no aplicativo.

importar gi
kimono.require_version ("Gtk", "3.0 ")
kimono.require_version ('Notificar', '0.7 ')
de kimono.repositório importar Gtk
de kimono.Importação de repositório Notificar

A próxima declaração subclasses “Gtk.Classe Window ”como classe“ MyWindow ”. O “Gtk.Janela.método __init__ ”inicializa o construtor da superclasse (Gtk.Window) a partir da qual uma subclasse (MyWindow) foi criada. No construtor, o título do aplicativo também é definido como “Hello World” usando o argumento “title”. A geometria padrão da janela do aplicativo também é definida especificando-se a largura e a altura no método “set_default_size”.

classe MyWindow (Gtk.Janela):
def __init __ (self):
Gtk.Janela.__init __ (self, title = "Hello World")
Gtk.Janela.set_default_size (self, 640, 480)

Em seguida, o método “init” da classe Notify é usado para inicializar a biblioteca “libnotify”, fornecendo um título de aplicativo. Sem a inicialização, as notificações não serão enviadas e exibidas na área de trabalho do Linux.

Notificar.init ("Aplicativo GTK3 Simples")

A declaração “box” adiciona um contêiner de layout vazio à janela principal do aplicativo. Este contêiner é como uma tela vazia onde qualquer número de widgets pode ser colocado. “Espaçamento” refere-se ao espaço entre widgets nas unidades de “pixel”.

auto.box = Gtk.Caixa (espaçamento = 6)
auto.add (self.caixa)

Um novo widget de botão “Clique aqui” é criado usando o “Gtk.Método de botão. Ele é então alinhado aos centros horizontais e verticais do layout da caixa pai usando os métodos “set_halign” e “set_valign”. O botão é conectado ao sinal “clicado” para que sempre que o botão for pressionado, o método de retorno de chamada “on_button_clicked” possa ser invocado. Por último, o widget de botão é inserido da esquerda ao longo do eixo horizontal para o layout da caixa usando a opção “caixa.método pack_start ”. Este método leva quatro argumentos: o objeto widget a ser adicionado, booleano para expandir o widget, booleano para preencher o widget e preenchimento entre o widget adicionado e outros adjacentes.

auto.botão = Gtk.Botão (rótulo = "Clique aqui")
auto.botão.set_halign (Gtk.Alinhar.CENTRO)
auto.botão.set_valign (Gtk.Alinhar.CENTRO)
auto.botão.conectar ("clicado", self.on_button_clicked)
auto.caixa.pack_start (self.botão, verdadeiro, verdadeiro, 0)

O método “on_button_click” é invocado sempre que o botão “Clique aqui” é pressionado. Uma nova notificação é criada usando o “novo” método que leva o título e o conteúdo da notificação como argumentos. Esta notificação é então mostrada na área de trabalho usando o método “show”. Você também pode mover a instrução “novo” no construtor principal para evitar recriar a notificação sempre que o botão for pressionado.

def on_button_clicked (self, widget):
n = Notificar.Notificação.novo ("Simple GTK3 Application", "Hello World !!")
n.mostrar()

As próximas declarações são sobre como criar, gerenciar e mostrar uma nova janela de aplicativo. Uma nova instância da classe “MyWindow” é criada e é conectada ao sinal “destruir” para garantir que o aplicativo seja fechado corretamente sempre que um usuário decidir encerrar o aplicativo clicando no botão “x”. O método “show_all” exibe a janela do aplicativo em sua área de trabalho Linux. Por fim, o principal loop do aplicativo responsável por manipular eventos e sinais é executado.

Conclusão

GTK3 e Qt são alguns dos frameworks GUI mais populares usados ​​para criar aplicativos que rodam nativamente no Linux. Ambas as estruturas permitem que você escreva a lógica principal nas linguagens C ++ e Python. Você não pode errar ao escolher qualquer um desses kits de ferramentas para o seu próximo projeto de aplicativo Linux.

Top 5 cartas de captura de jogos
Todos nós vimos e amamos streaming de jogos no YouTube. PewDiePie, Jakesepticye e Markiplier são apenas alguns dos melhores jogadores que ganharam mil...
Como desenvolver um jogo no Linux
Uma década atrás, poucos usuários de Linux preveriam que seu sistema operacional favorito um dia seria uma plataforma de jogos popular para videogames...
Portas de código aberto para motores de jogos comerciais
Recriações gratuitas, de código aberto e de mecanismo de jogo de plataforma cruzada podem ser usadas para jogar jogos antigos, bem como alguns dos tít...