Текстовая метка Label

Последнее обновление: 11.09.2022

Виджет Label представляет текстовую метку. Этот элемент позволяет выводить статический текст без возможности редактирования.

Для создания элемента Label применяется конструктор, который принимает два параметра:

Label(master, options)

Параметр master представляет ссылку на родительский контейнер, а параметр options представляет следующие именованные параметры

  • anchor: устанавливает позиционирование текста

  • background: фоновый цвет

  • borderwidth: толщина границы метки

  • cursor: курсор указателя мыши при наведении на метку

  • font: шрифт текста

  • foreground: цвет текста

  • height: высота виджета

  • image: ссылка на изображение, которое отображается на метке

  • justify: устанавливает выравнивание текста. Значение LEFT выравнивает текст по левому краю, CENTER - по центру, RIGHT - по правому краю

  • pading: отступы от границ вилжета до его текста

  • relief: определяет тип границы, по умолчанию значение FLAT

  • text: устанавливает текст метки

  • textvariable: устанавливает привязку к элементу StringVar

  • underline: указывает на номер символа в тексте метки, который подчеркивается. По умолчанию значение -1, то есть никакой символ не подчеркивается

  • width: ширина виджета

  • wraplength: при положительном значении строки текста будут переносится для вмещения в пространство виджета

Выведем в окне приложения простейший текст:

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("METANIT.COM")
root.geometry("250x200")

label = ttk.Label(text="Hello METANIT.COM")
label.pack()

root.mainloop()
Label в tkinter и Python

Установка шрифта

Параметр font принимает определение шрифта в виде:

font = ("имя шрифта", размер_шрифта)

Первое значение передает имя шрифта в кавычках, а второе - числовой размер шрифта. Например, установим шрифт Arial высотой в 14 единиц:

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("METANIT.COM")
root.geometry("250x200")

label = ttk.Label(text="Hello METANIT.COM", font=("Arial", 14))
label.pack()

root.mainloop()
Шрифт текста в Label в tkinter и Python

Установка изображения

За установку изображения на метке отвечает параметр image. Самый простой способ определения изображения представляет создание объекта PhotoImage, в конструктор которого передается путь к изображению:

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("METANIT.COM")
root.geometry("250x200")

python_logo = PhotoImage(file="./python_logo.png")

label = ttk.Label(image=python_logo)
label.pack()

root.mainloop()

В моем случае изображение представляет файл python_logo.png, которое находится в одной папке с файлом приложения и которое изображает логотип python:

изображение в Label в tkinter и Python

Если необходимо также отображать и текст, то для этого можно установить параметр compound, который определяет положение текста по отношению к изображению с помощью одного из следующих значений:

  • top: изображение поверх текста

  • bottom: изображение под текстом

  • left: изображение слева от текста

  • right: изображение справа от текста

  • none: при наличии изображения отображается только изображение

  • text: отображается только текст

  • image: отображается только изображение

Например, отобразим картинку поверх текста:

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("METANIT.COM")
root.geometry("250x200")

python_logo = PhotoImage(file="./python_logo.png")

label = ttk.Label(image=python_logo, text="Python", compound="top")
label.pack()

root.mainloop()
Картинка с текстов в label в tkinter в Python

Стилизация

По умолчанию метка не имеет границы. Для установки толщины границы используется параметр borderwidth, при этом нам также надо установить тип границы с помощью параметра releaf, который может принимать значения: "flat", "raised", "sunken", "ridge", "solid" и "groove":

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("METANIT.COM")
root.geometry("250x200")


label = ttk.Label(text="Hello Tkinter", borderwidth=2, relief="ridge", padding=8)
label.pack(expand=True)

root.mainloop()

Установка цвета фона и текста:

from tkinter import *
from tkinter import ttk

root = Tk()
root.title("METANIT.COM")
root.geometry("250x200")


label = ttk.Label(text="Hello Tkinter", background="#FFCDD2", foreground="#B71C1C", padding=8)
label.pack(expand=True)

root.mainloop()
стилизация label в tkinter и python
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850