Crie GUI modernas e bonitas com Python!

Bom, recentemente estava navegando no tabnews e me deparei com este repositório: como criar interfaces graficas gui com python. Neste post, ele utiliza o Tkinter, que é uma biblioteca em Python de fácil entendimento e simples de manipular, sendo ideal para projetos simples. Uma observação é que, muitas vezes, é difícil criar interfaces modernas e bonitas com ele.

Com isso em mente, eu vou apresentar uma outra biblioteca que funciona em conjunto com o Tkinter e mostrar suas capacidades.


CUSTOMTKINTER

Essa biblioteca é simplesmente sensacional, além de adicionar uma nova "cara" as suas interfaces, também adiciona diversas funções de widgets e até animações.

Exemplo 1

import customtkinter #faz importação do módulo

def button_callback():
    print("button clicked")

app = customtkinter.CTk() #cria a janela
app.geometry("400x150") #define a proporção da janela por px x px

button = customtkinter.CTkButton(app, text="my button", command=button_callback, fg_color="red") #cria um botão aos moldes do Tkinter: janela principal, texto, cor de fundo e comando que o botão vai executar
button.pack(padx=20, pady=20) #define em qual posição o botão vai aparecer

app.mainloop() #mantém a janela

Você pode colocar diferentes argumentos tantos nas janelas e botões ou temas, cores, widgets e etc...


Exemplo 2

Vou mostrar a diferença entre dois dos meus projetos: um foi mais simples e apenas exibia imagens pré-determinadas, enquanto o outro utiliza uma API.

Tkinter:

pokedex_1

Customtkinter:

pokedex_2


Conclusão

Depois de ter visto as diferenças entre usar ou não o Customtkinter em seus projetos Tkinter e ter chegado à conclusão de que a biblioteca oferece uma gama personalização, vou mencionar vídeos, sites e GitHub para que você possa extrair o máximo de conteúdo.

Links:


Agradecimento

Espero que tenha gostado da leitura e, principalmente, que tenha entendido. 😁

Salve Dimi. Sou novo no site mas gostaria de deixar minha contribuicao pedindo pra voce falar sobre o Flet. melhor que usei ate agora e muito rapida. https://flet.dev Ela é baseada no flutter, tem uma otima documentacao. unico porem é que é beta, acredito que porque nao tem todos recursos ainda. mas eh bem estavel

fiz um app com a lib e ta ficando dahora, pra ler manga. https://github.com/ReiLoko4/manga-you-know

Fala Dimi. Tudo firmeza?

Achei muito top esse trabalho customizando o tkinter.

Mas aproveitando para compartilhar, a documentação do tkinter fala sobre aplicar temas de terceiros que alteram o design dos widgets e página. Existem vários tipos de temas disponíveis nessa lista e muitos já mostram como usar certinho.

Um tema que achei legal é esse aqui.

Esse post mostra como usar a lib ttkthemes.

E olha que doida essa outra lib inspirada no bootstrap 👇👇👇👇

Espero ter ajudado quem passou por aqui! O(∩_∩)O

da uma olhada no Flet. melhor que usei ate agora e muito rapida. https://flet.dev fiz um app com a lib e ta ficando dahora, pra ler manga. https://github.com/ReiLoko4/manga-you-know
Muito interresante mesmo essa lib, vou passar a usar em meus projetos.

Acho que seria melhor, no exemplo das imagens, mostrar a mesma tela com as bibliotecas diferentes, ficaria mais aparente as diferenças.

Concordo. Geralmente reimplementando a mesma tela, mas com bibliotecas diferentes iríamos trr uma melhor comparação.

Geralmente não uso Gui no Python, mas depois de ver essas telas deu vontade até de criar alguma coisa pra Desktop. Valeu mesmo.

Bem legal, a maioria das GUI em Python feitas para utilização de RPA tem aquela aparência de interfaces desktop da década de 90. Vou usar essas ideias no próximo projeto

Depois dê uma olhada na biblioteca Textual.

Eu já testei essa biblioteca achei meio complicado desenvolver GUI para ela, mas acho super interessante.

Já ouviu falar de pyQT? Eu gosto bastante porque posso desenvolver a parte gráfica em um software e depois executar um comando pra ler o arquivo de UI

Sim, não explorei muito o pyQT, eu sei que tem bastantes expansões devido ao software. O único ponto negativo é que você precisa comprar uma licença pra poder usar em projetos monetizado.
PySide é a versão LGPL da QT e vc pode usar em uso comercial sem precisar compartilhar seu código fonte.
Caraca, não sabia disso. Obrigado por acrescentar mais informações.