Tkinter - Label

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

INTRODUCTION

Label widgets are used to display text or images. The text displayed by a Label widget can’t be edited by the user.


# label1.py
import tkinter as tk   # Py3

root = tk.Tk()   # root widget

# widgets are added here

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

label.grid()   # using a geometry manager

root.mainloop()

# It is possible to pack a widget without assigning it a variable.
# We can use this form if the widget is never again referenced.
# The widget is not garbage collected because it is used internally.

tk.Label(root, text="Hello").grid()   # None is returned here!

Selected keyword arguments in Label()

master=root     # the first argument
text="Hello"
textvariable=strvar   # get the string from a variable, updating when the variable changes
image=logo
compound=tk.CENTER   # or tk.BOTTOM, tk.LEFT, tk.RIGHT, tk.TOP
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"   # set the appearance of the mouse pointer when it moves
   # over the widget ('gumby', 'watch', 'pencil', 'cross', 'hand2')

Setting parameters in widgets

label = tk.Label(root, text="Hello")   # at creation
label.config(bg="red", fg="black")   # using config(), many options possible
label.configure(bg="red")   # the same
label["fg"] = "blue"   # using dict, only one option
label["text"] = "text changed"
txt = label.cget("text")   # return string (the current value of an option)
txt = label["text"]   # the same

Color formats: "color_name", "#RRGGBB"

Color names: 
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),

Font descriptors, option 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".

Here are some families available on most Windows platforms:
Arial (corresponds to Helvetica), Courier New (Courier), Comic Sans MS, 
Fixedsys, MS Sans Serif, MS Serif, Symbol, System, Times New Roman (Times), 
and Verdana.

The available font styles are 'normal', 'bold', 'roman', 'italic', 'underline', 
'overstrike', or combination of these ("bold italic").

IMAGES

The PhotoImage class is used to display images (either grayscale or true color images) in labels, buttons, canvases, and text widgets.

If the compound option is set to tk.BOTTOM, tk.LEFT, tk.RIGHT, or tk.TOP, the image is drawn correspondingly to the bottom, left, right or top of the text. Without the compound option the text is invisible.


# label3.py
import tkinter as tk
from PIL import Image, ImageTk

root = tk.Tk()

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

im = Image.open("img/python_logo.jpg")   # for JPG files
logo = ImageTk.PhotoImage(im)   # a Tkinter-compatible photo image
print("width {} height {}".format(logo.width(), logo.height()))

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

label = tk.Label(root,
    compound=tk.CENTER,   # text and image together
    image=logo,
    text="[Python logo]"
)
label.image = logo   # keep a reference! (from effbot.org)

label.grid()

root.mainloop()   # run the tkinter event loop