- Python tkinter label border
- Установка шрифта
- Установка изображения
- Стилизация
- Как установить границу виджета метки Tkinter
- Пример полного рабочего кода
- Сопутствующая статья — Tkinter Label
- Tkinter Label – Border
- Examples
- 1. Set SOLID border of 2px around the Label widget using Frame
- 2. Set RAISED border of 5px around the Label widget using Frame
- Summary
Python tkinter label border
Виджет Label представляет текстовую метку. Этот элемент позволяет выводить статический текст без возможности редактирования.
Для создания элемента Label применяется конструктор, который принимает два параметра:
Параметр 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()
Установка шрифта
Параметр 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()
Установка изображения
За установку изображения на метке отвечает параметр 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:
Если необходимо также отображать и текст, то для этого можно установить параметр 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()
Стилизация
По умолчанию метка не имеет границы. Для установки толщины границы используется параметр 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()
Как установить границу виджета метки Tkinter
В этом уроке мы расскажем, как установить границу виджета Tkinter Label .
Tkinter Label по умолчанию не имеет границы, как показано ниже.
Вам нужно назначить опцию borderwidth , чтобы добавить границу вокруг виджета Label , а также назначить опцию relief , чтобы она была одной опцией, а не flat , чтобы сделать границу видимой.
tk.Label(app, borderwidth = 3, relief="sunken", text="sunken & borderwidth=3")
Она устанавливает borderwidth как 3 , а опцию оформления границы relief как sunken .
В примере ниже показан порядок следования этикеток с различными опциями relief .
Как вы могли видеть, граница невидима, когда relief является flat (значение relief по умолчанию), даже когда установлена borderwidth .
Пример полного рабочего кода
import tkinter as tk app = tk.Tk() labelExample1 = tk.Label(app, borderwidth = 1, width = 40, relief="raised", text="raised & borderwidth=1") labelExample2 = tk.Label(app, borderwidth = 2, width = 40, relief="ridge", text="ridge & borderwidth=2") labelExample3 = tk.Label(app, borderwidth = 3, width = 40, relief="sunken", text="sunken & borderwidth=3") labelExample4 = tk.Label(app, borderwidth = 4, width = 40, relief="flat", text="flat & borderwidth=4") labelExample5 = tk.Label(app, borderwidth = 5, width = 40, relief="groove", text="groove & borderwidth=5") labelExample6 = tk.Label(app, borderwidth = 6, width = 40, relief="ridge", text="solid & borderwidth=6") labelExample1.grid(column=0, row=0, padx=10, pady=10) labelExample2.grid(column=0, row=1, padx=10, pady=10) labelExample3.grid(column=0, row=2, padx=10, pady=10) labelExample4.grid(column=0, row=3, padx=10, pady=10) labelExample5.grid(column=0, row=4, padx=10, pady=10) labelExample6.grid(column=0, row=5, padx=10, pady=10) app.mainloop()
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
Сопутствующая статья — Tkinter Label
Tkinter Label – Border
There is no default option to specify a border for Label widget in Tkinter. But, we can wrap this Label widget in a Frame, and specify border for the Frame widget.
To set the border for a Label widget in Tkinter, wrap the Label widget in a Frame widget, and set the border for the Frame widget.
frame = tk.Frame(window, relief=tk.SOLID, borderwidth=2) label = tk.Label(frame, text="Hello, Tkinter!")
In this tutorial, you will learn how to set the border for a Label widget using Frame widget, with examples.
Examples
1. Set SOLID border of 2px around the Label widget using Frame
In this example, we shall create a Frame widget with a solid border width of 2, and then use this Frame widget as a parent for the Label widget.
import tkinter as tk # Create the main window window = tk.Tk() window.title("PythonExamples.org") window.geometry("300x200") # Create a frame with a border frame = tk.Frame(window, relief=tk.SOLID, borderwidth=2) # Create a label widget inside the frame label = tk.Label(frame, text="Hello World!") # Pack the label widget to display it label.pack() # Pack the frame to display it frame.pack() # Run the application window.mainloop()
2. Set RAISED border of 5px around the Label widget using Frame
In this example, we shall create a Frame widget with a raised border with width of 5, and then use this Frame widget as a parent for the Label widget.
import tkinter as tk # Create the main window window = tk.Tk() window.title("PythonExamples.org") window.geometry("300x200") # Create a frame with a border frame = tk.Frame(window, relief=tk.RAISED, borderwidth=5) # Create a label widget inside the frame label = tk.Label(frame, text="Hello World!") # Pack the label widget to display it label.pack() # Pack the frame to display it frame.pack() # Run the application window.mainloop()
Summary
In this Python Tkinter tutorial, we learned how to set a specific width and height for a Label widget, with examples.