- Baixe nosso material e estudo offline onde e quando quiser: Apostila Python Progressivo
Como Exibir um Texto - Label
Para exibir um simples texto, vamos usar a função Label() do módulo tkinter.
O primeiro argumento tem que ser a janela (main_window, do tipo Tk() ) onde o label vai ficar e o segundo argumento é a variável text com a string que queremos exibir.
Vamos salvar esse Label na variável texto.
Depois, invocamos o método pack() da Label(), para posicionar e exibir o label na janela.
Por fim, chamamos a mainloop() para exibir nossa janela.
Nosso código fica:
import tkinter class MinhaGUI: def __init__(self): # Criando a janela principal self.main_window = tkinter.Tk() # Criando um Label com o texto 'Curso Python Progressivo' self.texto = tkinter.Label(self.main_window, text='Curso Python Progressivo! ' ) # Chamando o metodo pack() da função Label() self.texto.pack() # Fazer o Tkinter exibir o looping da janela tkinter.mainloop() minha_gui = MinhaGUI()
O resultado é a janela com o rótulo (label):
O método pack() e o argumento side
Se você maximizar a janela que vai abrir, vai perceber que a linha de texto fica bem lá em cima, e no centro. Esse é o padrão, mas podemos mudar isso através do método pack() que recebe o argumento side com as seguintes opções:- side='left'
- side='right'
- side='bottom'
- side='top'
Por exemplo, vamos criar um novo label na variável label2 e chamar de label1 a primeira, que exibimos a string 'Curso Python Progressivo!'
Vamos fazer com que label1 fique no topo e label2 fique sempre lá embaixo, basta usar o argumento side no método pack(), veja como fica o código:
import tkinter class MinhaGUI: def __init__(self): # Criando a janela principal self.main_window = tkinter.Tk() # Criando os labels self.label1 = tkinter.Label(self.main_window, text='Curso Python Progressivo!' ) self.label2 = tkinter.Label(self.main_window, text='www.pythonprogressivo.net' ) # Exibindo os labels self.label1.pack(side='top') self.label2.pack(side='bottom') # Fazer o Tkinter exibir o looping da janela tkinter.mainloop() minha_gui = MinhaGUI()
E o resultado:
Note que você pode maximizar, diminuir ou aumentar a janela, mas o label1 fica sempre lá em cima e o label2 fica sempre lá embaixo, quem 'cuida' disso é o método pack().
Bacana, não é?
A Função Label() e seus Parâmetros
Existem outros parâmetros para passarmos para a função Label além da janela principal o text com a string a ser exibida.Por exemplo, o parâmetro bg recebe a cor de background (plano de fundo).
O parâmetro fg, recebe a cor da fonte.
O seguinte código:
import tkinter class MinhaGUI: def __init__(self): # Criando a janela principal self.main_window = tkinter.Tk() # Criando a label Ceará e exibindo self.label = tkinter.Label(self.main_window, text="Ceará", bg="black", fg="white") self.label.pack(fill = tkinter.X) # Criando a label Flamengo e exibindo self.label = tkinter.Label(self.main_window, text="Flamengo", bg="red", fg="black") self.label.pack(fill = tkinter.X) # Criando a label Palmeiras e exibindo self.label = tkinter.Label(self.main_window, text="Palmeiras", bg="green", fg="black") self.label.pack(fill = tkinter.X) # Fazer o Tkinter exibir o looping da janela tkinter.mainloop() minha_gui = MinhaGUI()
Tem o seguinte resultado:
O parâmetro fill é de preenchimento, usamos tkinter.X para expandir (expand) e ocupar toda a tela.
Entenderam a lógica da coisa?
Cria uma janela (main_window ou qualquer nome que queira), é uma instância de Tk()
Cria os label com a função Label e depois exibe com a pack().
Por fim, chama a mainloop() pra a exibição continuar pra sempre, até você clicar em fechar.
Para exibir os labels lado a lado, usamos side='left' e para preencher verticalmente, usamos fill=tkinter.Y:
import tkinter class MinhaGUI: def __init__(self): # Criando a janela principal self.main_window = tkinter.Tk() # Criando a label Ceará e exibindo self.label = tkinter.Label(self.main_window, text="Ceará", bg="black", fg="white") self.label.pack(fill = tkinter.Y, side='left') # Criando a label Flamengo e exibindo self.label = tkinter.Label(self.main_window, text="Flamengo", bg="red", fg="black") self.label.pack(fill = tkinter.Y, side='left') # Criando a label Palmeiras e exibindo self.label = tkinter.Label(self.main_window, text="Palmeiras", bg="green", fg="black") self.label.pack(fill = tkinter.Y, side='left') # Fazer o Tkinter exibir o looping da janela tkinter.mainloop() minha_gui = MinhaGUI()
Resultado:
Muito boa a aula!!!
ResponderExcluirObrigado!