Пусть в окне приложения располагаются текстовое поле (entry), метка (label) и кнопка (button). У виджетов много свойств: размер, цвет фона, цвет надписи, размер шрифта, текст надписи и др.
Примеры:
e = Entry(root, width=20)
b = Button(root, text="Преобразовать")
l1 = Label(root, bg=‘red', fg='white', width=20)
l2 = Label(text="Распознавание образов", font=("Comic Sans MS", 24, "bold"))
Button (root, options)
btn = Button(text="Hello", # текст кнопки
background="#555", # фоновый цвет кнопки
foreground="#ccc", # цвет текста
padx="20", # отступ от границ до содержимого по горизонтали
pady="8", # отступ от границ до содержимого по вертикали
font="16" # высота шрифта)
btn.pack()
Чтобы сделать элемент видимым, вызывается метод pack().
Button - Options
activebackground: цвет кнопки, когда она находится в нажатом состоянии
activeforeground: цвет текста кнопки, когда она в нажатом состоянии
bd: толщина границы (по умолчанию 2)
bg/background: фоновый цвет кнопки
fg/foreground: цвет текста кнопки
font: например, font="Arial 14" или font=("Verdana", 13, "bold")
height: высота кнопки
highlightcolor: цвет кнопки, когда она в фокусе
image: изображение на кнопке
justify: устанавливает выравнивание текста. LEFT, CENTER, RIGHT .
padx: отступ от границ кнопки до ее текста справа и слева
pady: отступ от границ кнопки до ее текста сверху и снизу
relief: тип границы, SUNKEN, RAISED, GROOVE, RIDGE
state: устанавливает состояние кнопки, может принимать значения DISABLED, ACTIVE, NORMAL (по умолчанию)
text: устанавливает текст кнопки
textvariable: устанавливает привязку к элементу StringVar
width: ширина кнопки
wraplength: при значении >0 строки текста будут вмещаться в пространство кнопки
Обработка нажатия на кнопку
Для обработки нажатия на кнопку необходимо установить в конструкторе параметр command, присвоив ему ссылку на функцию, которая будет срабатывать при нажатии:
…
def click_button():
global clicks
clicks += 1
…
btn = Button(text="Click Me", background="#555", foreground="#ccc", padx="20", pady="8", font="16", command=click_button)
Label(root, options)
label1 = Label(text="Привет", fg="#eee", bg="#333")
label1.pack()
poetry = "Вот мысль, которой весь я предан,\n Итог всего, что ум скопил.\n Лишь тот, кем бой за жизнь изведан,\n Жизнь и свободу заслужил."
label2 = Label(text=poetry, justify=LEFT)
label2.pack()
\n - Перевод на следующую строку
Label - Options
anchor: устанавливает позиционирование текста (n, s, w, e, ne, nw, se, sw)
bg/background: фоновый цвет
bitmap: ссылка на изображение, которое отображается на метке
bd: толщина границы метки
fg/foreground: цвет текста
font: шрифт текста, например, font="Arial 14" - шрифт Arial высотой 14px
height: высота элемента
cursor: курсор указателя мыши при наведении на метку
image: ссылка на изображение, которое отображается на метке
justify: устанавливает выравнивание текста. Значение LEFT выравнивает текст по левому краю, CENTER - по центру, RIGHT - по правому краю
padx: отступ от границ элемента до его текста справа и слева
pady: отступ от границ элемента до его текста сверху и снизу
relief: определяет тип границы, по умолчанию значение FLAT
text: устанавливает текст метки
textvariable: устанавливает привязку к элементу StringVar
width: ширина элемента
wraplength: при положительном значении строки текста будут переносится для вмещения в пространство элемента
Entry (root, options)
e1 = Entry(fg="#eee", bg="#333")
e1.pack()
t = "Привет!"
e2 = Entry(text=t, justify=LEFT)
e2.pack()
Entry - Options
bg: фоновый цвет
bd: толщина границы
cursor: курсор указателя мыши при наведении на текстовое поле
fg: цвет текста
font: шрифт текста
justify: устанавливает выравнивание текста. Значение LEFT выравнивает текст по левому краю, CENTER - по центру, RIGHT - по правому краю
relief: определяет тип границы, по умолчанию значение FLAT
selectbackground: фоновый цвет выделенного куска текста
selectforeground: цвет выделенного текста
show: задает маску для вводимых символов
state: состояние элемента, может принимать значения NORMAL (по умолчанию) и DISABLED
textvariable: устанавливает привязку к элементу StringVar
width: ширина элемента
Методы Entry
Элемент Entry имеет ряд методов. Основные из них:
insert(index, str): вставляет в текстовое поле строку по определенному индексу
get(): возвращает введенный в текстовое поле текст
delete (first, last=None): удаляет символ по индексу first. Если указан параметр last, то удаление производится до индекса last. Чтобы удалить до конца, в качестве второго параметра можно использовать значение END.
Примеры:
е1.insert(0, "Tom")
е2.insert(0, "Soyer")
def clear():
е1.delete(0, END)
е2.delete(0, END)
def display():
messagebox.showinfo(“Приветствие”, e1.get() + " " + e2.get())
Практическая работа 1
«A»: Создайте окно программы 200 на 250 по центру экрана.
«B»: Дополните окно семью кнопками, цвета которых соответствуют цветам радуги и одной меткой.
«C»: Напишите программу, которая выводит цвет кнопки в метке и код цвета в метке.
Коды цветов в шестнадцатеричной кодировке: #ff0000 – красный, #ff7d00 – оранжевый, #ffff00 – желтый, #00ff00 – зеленый, #007dff – голубой, #0000ff – синий, #7d00ff – фиолетовый.
https://klub-kod.ru/python/tkinter/metki-knopki-tekstovye-polya#sigProId799c208f17