Тулкит tkinter содержит набор компонентов или виджетов, одним из которых является кнопка. Добавим кнопку в окно:
| 1 2 3 4 5 6 7 8 9 10 | from tkinter import * root = Tk()root.title("GUI на Python")root.geometry("300x250")btn = Button(text="Hello")btn.pack()root.mainloop() |
Для создания кнопки используется конструктор Button(). В этом конструкторе с помощью параметра text можно установить текст кнопки.
Чтобы сделать элемент видимым, у него вызывается метод pack(). В итоге вверху окна будет красоваться кнопка:

Каждый виджет, в том числе кнопка, имеет ряд атрибутов, которые влияют на ее визуализацию и которые мы можем настроить через конструктор:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Параметры pady, padx, font принимают числовое значение, а параметры background и foreground получают шестнадцатеричное значение цвета. Параметр font содержит определение шрифта.

Всего же конструктор Button может принимать следующие параметры:
| 1 | Button (master, options) |
Параметр master представляет ссылку на родительский контейнер. В случае выше это могло бы быть само графическое окно, и мы могли написать:
| 1 2 3 4 5 6 | root = Tk()root.title("GUI на Python")root.geometry("300x250") btn = Button(root, text="Hello") btn.pack() |
Однако если в коде создается одно окно, то кнопка и любой другой элемент уже по умолчанию размещаются в этом окне. Поэтому первый параметр мы можем опустить, как в примерах выше. Если бы у нас в коде создавалось бы несколько окон, тогда мы могли бы передать в конструктор Button ссылку на нужное окно.
Второй параметр options представляет набор на самом деле набор параметров, которые мы можем установить по их имени:
- activebackground: цвет кнопки, когда она находится в нажатом состоянии
- activeforeground: цвет текста кнопки, когда она в нажатом состоянии
- bd: толщина границы (по умолчанию 2)
- bg/background: фоновый цвет кнопки
- fg/foreground: цвет текста кнопки
- 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: при положительном значении строки текста будут переносится для вмещения в пространство кнопки
Обработка нажатия на кнопку
Для обработки нажатия на кнопку необходимо установить в конструкторе параметр command, присвоив ему ссылку на функцию, которая будет срабатывать при нажатии:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
Здесь в качестве обработчика нажатия устанавливается функция click_button. В этой функции изменяется глобальная переменная clicks, которая хранит число кликов, и ее значение выводится в заголовок окна. Таким образом, при каждом нажатии кнопки будет срабатывать функция click_button, и количество кликов будет увеличиваться:
