Tkinter Label

https://realpython.com/python-gui-tkinter/

WPROWADZENIE

Widżet 'Label' jest używany do wyświetlania tekstu lub obrazów. Tekst wyświetlany przez widżet nie może być edytowany przez użytkownika.


# label1.py
import tkinter as tk   # Py3

root = tk.Tk()   # root widget

# tutaj dodajemy widżety

label = tk.Label(root, text="A label with a very long text")
#label = tk.Label(root, text="Hello", bg="red")

label.grid()   # użycie menedżera geometrii

root.mainloop()

Wybrane 'keyword arguments' dla Label()

master=root     # pierwszy argument
text="Hello"   # string do wyświetlenia
textvariable=strvar   # pobiera string ze zmiennej, zmiana tekstu przez zmianę w zmiennej
fg="white"   # set the text color to white ('fg' or 'foreground')
bg="black"   # set the background color to black ('bg' or 'background')
width=50   # in text units
height=10   # in text units
font="Times 10 bold"
justify=tk.LEFT
padx=20
cursor="pencil"   # wygląd kursora myszy, gdy przesuwa się nad widżetem
# ('pencil', 'gumby', 'watch', 'cross', 'hand2')

Ustawianie parametrów w widżetach

label = tk.Label(root, text="Hello")   # w czasie tworzenia
label.config(bg="red", fg="black")   # użycie config(), można podać wiele opcji
label.configure(bg="red")   # jw
label["fg"] = "blue"   # użycie dict, możliwa tylko jedna opcja na raz
label["text"] = "text changed"
txt = label.cget("text")   # return string (bieżąca wartość opcji)
txt = label["text"]   # jw

Formaty dla kolorów (stringi): "color_name", "#RRGGBB"

Nazwy kolorów: 
white, black, gray (silver),
red, pink, orange, yellow (gold, khaki), 
purple (violet, magenta, indigo),
green (lime, olive, teal), 
blue (aqua, cyan, navy), 
brown (tan, chocolate, sienna, maroon),

Opis fontów, opcja font=(family, size, style):
("Times", 10, "bold") or string "Times 10 bold" (10-point size),
("Helvetica", 10, "bold italic") or string "Helvetica 10 bold italic",
("Symbol", 8) or string "Symbol 8".

Typowe rodziny dostępne dla większości platform:
Arial (corresponds to Helvetica), Courier New (Courier), Comic Sans MS, 
Fixedsys, MS Sans Serif, MS Serif, Symbol, System, Times New Roman (Times), 
and Verdana.

Dostępne style fontów to 'normal', 'bold', 'roman', 'italic', 'underline', 
'overstrike', albo ich kombinacje ("bold italic").

OBRAZY

Klasa 'PhotoImage' jest używana do wyświetlania obrazów w etykietach, przyciskach i widżetach tekstowych.

Jeżeli opcja 'compound' jest ustawiona na tk.BOTTOM, tk.LEFT, tk.RIGHT, lub tk.TOP, wtedy obraz jest rysowany odpowiednio na dole, z lewej, z prawej lub na górze tekstu. Bez opcji 'compound' tekst jest niewidoczny.


# label3.py
import tkinter as tk

root = tk.Tk()

#logo = tk.PhotoImage(file="img/python_logo.gif")
logo = tk.PhotoImage(file="img/python_logo.png")

#label = tk.Label(root, image=logo)

label = tk.Label(root,
    compound=tk.CENTER,   # tekst i obraz razem
    image=logo,
    text="[Python logo]"
)
label.image = logo   # zapisujemy referencję (wg effbot.org)

label.grid()

root.mainloop()   # run the tkinter event loop