Appearance
Button - кнопка
Для создания кнопки используется конструктор Button(). В этом конструкторе с помощью параметра text можно установить текст кнопки:
py
from tkinter import *
root = Tk()
button = Button(root, text="Click me!")
button.pack()
root.mainloop()1
2
3
4
5
6
2
3
4
5
6
Чтобы сделать элемент видимым, у него вызывается метод pack(). В итоге вверху окна будет красоваться кнопка:
Каждый виджет, в том числе кнопка, имеет ряд атрибутов, которые влияют на ее визуализацию и которые мы можем настроить через конструктор:
py
from tkinter import *
root = Tk()
button = Button(root, text="Click me!", fg="red", bg="yellow")
button.pack()
root.mainloop()1
2
3
4
5
6
2
3
4
5
6
Параметры bg - background и fg - foreground получают значение цвета. Результат выполнения:
Параметры виджета
Всего же конструктор Button может принимать следующие параметры:
py
Button(master, options)1
Параметр master представляет ссылку на родительский контейнер. В случае выше это могло бы быть само графическое окно, и мы могли написать:
py
from tkinter import *
root = Tk()
root.title("GUI на Python")
root.geometry("300x250")
button = Button(root, text="Hello")
button.pack()
root.mainloop()1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Однако если в коде создается одно окно, то кнопка и любой другой элемент уже по умолчанию размещаются в этом окне. Поэтому первый параметр можно опустить, как в примерах выше. Если бы у нас в коде создавалось бы несколько окон, тогда мы могли бы передать в Button(root) ссылку на нужное окно.
Второй параметр options представляет набор параметров, которые мы можем установить по их имени:
activebackground: цвет элемента, когда он находится в нажатом состоянии;activefontground: цвет текста элемента, когда он в нажатом состоянии;bd: толщина границы (по умолчанию 2);bg/background: фоновый цвет;fg/fontground: цвет текста;font: шрифт текста, например,font= «Arial 14»- шрифтArialвысотой14px, илиfont=(«Verdana», 13, «bold»)- шрифтVerdanaвысотой13pxс выделением жирным;height: высота элемента;highlightcolor: цвет элемента, когда она в фокусе;image: изображение на элементе;justify: устанавливает выравнивание текста. Значение LEFT выравнивает текст по левому краю, CENTER - по центру, RIGHT - по правому краю;padx: отступ от границ элемента до ее текста справа и слева;pady: отступ от границ элемента до ее текста сверху и снизу;relief: определяет тип границы, может принимать значения SUNKEN, RAISED, GROOVE, RIDGE;state: устанавливает состояние элемента, может принимать значения DISABLED, ACTIVE, NORMAL (по умолчанию);text: устанавливает текст элемента;textvariable: устанавливает привязку к элементуStringVar;underline: указывает на номер символа в тексте элемента, который подчеркивается. По умолчанию значение -1, то есть никакой символ не подчеркивается;width: ширина элемента;wraplength: при положительном значении строки текста будут переносится для вмещения в пространство элемента.
Упражнения
TIP
Имена переменным нужно задавать корректно: состоят из двух слов (или более), отражающих суть содержания объекта, слова соединяются нижним подчеркиванием.
- Создайте окно с двумя кнопками: "OK" и "NOT OK".
- Создайте окно с тремя кнопками: "OK", "Are you sure?", "Maybe NOT?"
- Создайте окно с двумя кнопками: "OK" и "NOT OK", и примените для каждой кнопки параметр
underline=1. Какие изменения вы заметили? - Решение необходимо найти в интернете. Создайте окно с двумя кнопками:
- кнопка с иконкой (рисунок),
- кнопка с рисунком и надписью.