Instale os pacotes necessários
Para criar um aplicativo usando o Python 3 e o GTK3, você precisa instalar o Python Lindings para bibliotecas GOBJET. Isso pode ser feito instalando o pacote PygoBject incluído em 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-giVocê também pode compilar o PygoBject do código -fonte disponível aqui.
Código completo do aplicativo Hello World
Amostra 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 sobre o clique de um botão.
Importar GICaptura de tela do resultado final.
A notificação da área de trabalho que chega quando "clique aqui" é clicada:
Explicação passo a passo
Várias declarações de “importação” nas primeiras linhas do código Importar módulos necessários para o aplicativo funcionar. Esses módulos expõem inúmeras classes e funções que podem ser usadas no aplicativo. “Gi.As instruções require_version ”garantem que apenas a versão necessária da biblioteca seja importada para evitar problemas de compatibilidade e falhas. Neste caso “3.0 ”é usado para garantir que a biblioteca GTK3 seja usada no aplicativo e não no GTK2 ou em qualquer outra versão do GTK.
Semelhante à classe GTK, a classe Notify também é importada especificando sua versão necessária (0.7 é essa versão mais recente no momento da redação deste artigo). Esta classe será usada posteriormente no aplicativo.
Importar GIA próxima declaração subclasse “GTK.Classe de janela "como aula" MyWindow ". O “gtk.Janela.__init__ ”O método inicializa o construtor da super classe (GTK.Janela) 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 "título". A geometria padrão da janela do aplicativo também é definida especificando largura e altura no método "Set_Default_size".
classe MyWindow (GTK.Janela):Em seguida, o método "init" da classe Notify é usado para inicializar a biblioteca "libnotificar", fornecendo um título de aplicativo. Sem inicialização, as notificações não serão enviadas e mostradas na área de trabalho do Linux.
Notificar.init ("Aplicativo GTK3 simples")A declaração "Box" adiciona um recipiente 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 os widgets nas unidades "pixel".
auto.caixa = gtk.Caixa (espaçamento = 6)Um novo widget de botão "Clique aqui" é criado usando o "GTK.Método de botão ”. Em seguida, está alinhado aos centros horizontais e verticais do layout da caixa pai usando métodos "set_halign" e "set_valign". O botão está 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 chamado. Por fim, o widget de botão é inserido da esquerda ao longo do eixo horizontal até o layout da caixa usando a “caixa.Método pack_start ”. Este método leva quatro argumentos: o objeto de widget a ser adicionado, booleano para expandir o widget, booleano para preencher o widget e preenchimento entre os widgets adicionados e outros adjacentes.
auto.botão = gtk.Botão (Label = "Clique aqui")O método "on_button_click" é chamado sempre que o botão "Clique aqui" é pressionado. Uma nova notificação é criada usando o método "novo" que recebe 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 declaração "nova" no construtor principal para evitar recriar a notificação sempre que o botão for pressionado.
def on_button_clicked (self, widget):As próximas declarações são sobre criar, gerenciar e mostrar uma nova janela de aplicativo. Uma nova instância da classe "MyWindow" é criada e está conectada ao sinal "Destruir" para garantir que o aplicativo seja fechado corretamente sempre que um usuário decidir sair do aplicativo clicando no botão "X". O método "show_all" exibe a janela do aplicativo na sua área de trabalho do Linux. Por fim, o principal loop de aplicativos responsável pelo manuseio de eventos e sinais é executado.
Conclusão
GTK3 e QT são algumas das estruturas mais populares da GUI usadas para criar aplicativos que executam nativamente no Linux. Ambas as estruturas permitem que você escreva a lógica principal em idiomas C ++ e Python. Você não pode dar errado escolhendo qualquer um desses kits de ferramentas para o seu próximo projeto de aplicativo Linux.