Tkinter Tutorial - Label Widget

  1. Widget de Rótulo Python Tkinter
  2. Mudar a fonte Python Label Font
  3. Mudar a(s) cor(es) do rótulo Python Tkinter
  4. Mostrar imagem em Python Tkinter Label

O widget Label exibe uma string de texto ou uma imagem, cujo conteúdo normalmente não é suposto ser dinâmico. Claro, você pode mudar seu conteúdo, se quiser.

Widget de Rótulo Python Tkinter

Tkinter Label.py
from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    
app = tk.Tk()
labelExample = tk.Label(app, text="This is a Label")
labelExample.pack()
app.mainloop()

Gera uma janela com uma etiqueta de texto dentro da janela principal.

Etiqueta Básica de Tkinter

labelExample = tk.Label(app, text = "This is a label")

O labelExample é uma instância de Label exibindo This is a label com o pai app.

labelExample.pack()

O método pack() gerencia o layout de um widget em particular no widget pai. Ele tem opções como abaixo

pack() Método Descrição
fter=widget embalá-lo depois de ter embalado o widget
anchor=NSEW (or subset) widget de posição de acordo com
before = widget embale-o antes de embalar o widget
expandir=bool expandir o widget se o tamanho dos pais crescer
fill=none or x or y or both preencha o widget se o widget crescer
in=master usar master para conter este widget
in_=master ver descrição da opção ‘in’.
ipadx=amount adicionar acolchoamento interno na direcção x
ipady=amount adicionar acolchoamento interno na direcção y
padx=amount adicionar acolchoamento na direcção x
pady=amount adicionar acolchoamento na direcção y
side= top or bottom or left or right onde adicionar este widget.

Você poderia mudar as opções para obter o layout diferente do widget da etiqueta.

A dimensão da etiqueta é especificada pela largura e altura que pertencem às opções específicas do widget da etiqueta.

Informações

Largura e altura têm a unidade de texto quando contém texto, e seu tamanho é de pixels se a imagem é exibida.

Você pode obter propriedades de etiqueta com o comando dict(label),

Tkinter Label_Get Properties.py
from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    
from pprint import pprint
    
app = tk.Tk()
labelExample = tk.Label(app, text="This is a Label", height=15, width=100)
pprint(dict(labelExample))

As propriedades estão listadas abaixo

{'activebackground': 'SystemButtonFace',
 'activeforeground': 'SystemButtonText',
 'anchor': 'center',
 'background': 'SystemButtonFace',
 'bd': <pixel object at 00000000048D1000>,
 'bg': 'SystemButtonFace',
 'bitmap': '',
 'borderwidth': <pixel object at 00000000048D1000>,
 'compound': 'none',
 'cursor': '',
 'disabledforeground': 'SystemDisabledText',
 'fg': 'SystemButtonText',
 'font': 'TkDefaultFont',
 'foreground': 'SystemButtonText',
 'height': 15,
 'highlightbackground': 'SystemButtonFace',
 'highlightcolor': 'SystemWindowFrame',
 'highlightthickness': <pixel object at 00000000048FF100>,
 'image': '',
 'justify': 'center',
 'padx': <pixel object at 00000000048FED40>,
 'pady': <pixel object at 00000000048FF0D0>,
 'relief': 'flat',
 'state': 'normal',
 'takefocus': '0',
 'text': 'This is a Label',
 'textvariable': '',
 'underline': -1,
 'width': 100,
 'wraplength': <pixel object at 00000000048FED70>}

Agora você conhece as propriedades da etiqueta, então você poderia obter aparências diferentes da etiqueta, mudando-as.

Mudar a fonte Python Label Font

Mostraremos abaixo diferentes métodos de configuração de fontes de etiquetas.

Tkinter Label_Set Text Font.py
from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk

import tkFont    
app = tk.Tk()
labelExample1 = tk.Label(app, text="Customized Label 1", font=("Times", 20))
labelExample2 = tk.Label(app, text="Customized Label 2", 
                         font=("Times", 20, "italic"))

labelFont3 = tkFont.Font(family="Helvetica", size=20, weight=tkFont.BOLD,
                         underline=1, overstrike=1)
labelExample3 = tk.Label(app, text="Customized Label 3", 
                         font=labelFont3)
labelExample1.pack()
labelExample2.pack()
labelExample3.pack()
app.mainloop()

Etiqueta de Tkinter com Fonte de Texto Modificado

Definir a fonte Python Tkinter Label Font com um Tuple

labelExample1 = tk.Label(app, text="Customized Label 1", font=("Times", 20))
labelExample2 = tk.Label(app, text="Customized Label 2", 
                         font=("Times", 20, "italic"))

Um tuple com o tipo de letra como primeiro elemento, seguido de tamanho, estilo como peso, itálico, sublinhado e/ou overstrike.

Definir fonte Python Tkinter Label Font com tkFont Font Object

labelFont3 = tkFont.Font(family="Helvetica", size=20, weight=tkFont.BOLD,
                         underline=1, overstrike=1)
labelExample3 = tk.Label(app, text="Customized Label 3", 
                         font=labelFont3)

Você também poderia utilizar o objeto fonte no módulo tkFont para especificar as propriedades da fonte de texto da etiqueta.

O tipo de fonte em labelExample3 é da família de fontes Helvetica, tamanho 20, negrito, sublinhado e overstrike.

Tkinter Label_Get Fonts List.py
from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk

import tkFont
from pprint import pprint

app = tk.Tk()
pprint(tkFont.families())  

Mudar a(s) cor(es) do rótulo Python Tkinter

Você poderia mudar o primeiro plano da etiqueta e a cor de fundo utilizando as propriedades fg/bg.

labelExample1 = tk.Label(app, text="Customized Color",bg="gray", fg="red")

Tkinter Mudança de Widget de Primeiro Plano e Cor de Fundo

Mostrar imagem em Python Tkinter Label

A propriedade imag em label é utilizada para exibir a imagem na etiqueta.

Tkinter Lael_Display Image.py
from sys import version_info
if version_info.major == 2:
    import Tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    

app = tk.Tk()
logo = tk.PhotoImage(file='python.gif')
labelExample = tk.Label(app, image=logo)
labelExample.pack()
app.mainloop()

Imagem de Tkinter na Etiqueta

Advertência

O tk.PhotoImage só poderia exibir imagens coloridas em formato GIF, PPM/PGM. Ele gera _tkinter.TclError: não poderia reconhecer dados no arquivo de imagem se você utilizar outros formatos de imagem