TUTORIAL · Tkitner

Tkinter Tutorial - Etichetta Widget

Etichetta widget in Python Tkinter tutorial

Il widget Label visualizza una stringa di testo o un’immagine, il cui contenuto normalmente si suppone non sia dinamico. Naturalmente, se lo si desidera, è possibile modificarne il contenuto.

Widget per etichette Python Tkinter

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()

Genera una finestra con un’etichetta di testo all’interno della finestra principale.

Tkinter Etichetta di base

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

labelExample è un’istanza di Label che mostra Questa è un'etichetta con il genitore app.

labelExample.pack()

pack() gestisce il layout del particolare widget nel widget genitore. Ha le seguenti opzioni

pack() Metodo Descrizione
after=widget. imballare dopo aver impacchettato il widget
anchor=NSEW (or subset) widget di posizione secondo
before=widget impacchettalo prima di confezionare il widget
expand=bool espandere il widget se la dimensione del genitore cresce
fill=none or x or y or both riempire il widget se il widget cresce
in=master usa master per contenere questo widget
in_=master vedi descrizione dell’opzione in
ipadx=amount aggiungere l’imbottitura interna in direzione x
ipady=amount aggiungere l’imbottitura interna in direzione y
padx=amount aggiungere l’imbottitura nella direzione x
pady=amount aggiungere l’imbottitura in direzione y
side=top or bottom or left or right dove aggiungere questo widget.

È possibile modificare le opzioni per ottenere il diverso layout del widget delle etichette.

La dimensione dell’etichetta è specificata dalla larghezza e dall’altezza che appartengono alle opzioni specifiche del widget dell’etichetta.

Info
La larghezza e l’altezza hanno l’unità di unità di testo quando contiene testo, e la sua dimensione è di pixel se visualizza l’immagine.

Si possono ottenere le proprietà dell’etichetta con il comando dict(label),

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))

Le proprietà sono elencate di seguito

{'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>}

Ora che conoscete le proprietà dell’etichetta, potreste ottenere un’apparizione diversa dell’etichetta cambiandola.

Cambiare il carattere dell’etichetta Python

Di seguito vi mostreremo i diversi metodi di configurazione dei font delle etichette.

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()

Etichetta Tkinter con font di testo modificato

Set Python Tkinter Label Font con una Tupla

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

Una tupla con il tipo di nome del font come primo elemento, seguito da dimensioni, stile come peso, corsivo, sottolineatura e/o sovrascrittura.

Set Python Tkinter Label Font con oggetto font tkFont

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

Si può anche usare l’oggetto font nel modulo tkFont per specificare le proprietà del font del testo dell’etichetta.

Il tipo di font in labelExample3 è la famiglia di font Helvetica, dimensione 20, grassetto, sottolineato e sovrascrittura.

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())

Cambia il colore dell’etichetta di Python Tkinter

Si può cambiare il colore dell’etichetta in primo piano e dello sfondo usando le proprietà fg/bg.

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

Tkinter Cambia il colore di primo piano e di sfondo del widget

Visualizzare l’immagine in Python Tkinter Label

La proprietà image in label viene utilizzata per visualizzare l’immagine nell’etichetta.

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()

Tkinter Immagine in etichetta

Attenzione
tk.PhotoImage poteva visualizzare solo immagini a colori in formato GIF, PPM/PGM. Genera _tkinter.TclError: couldn't recognize data in image file se si utilizzano altri formati di immagine