Метки, кнопки, текстовые поля

Печать
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Пусть в окне приложения располагаются текстовое поле (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 – фиолетовый.