Button - кнопка

Для создания кнопки используется конструктор Button(). В этом конструкторе с помощью параметра text можно установить текст кнопки:

from tkinter import *

root = Tk()
button = Button(root, text="Click me!")
button.pack()
root.mainloop()
1
2
3
4
5
6

Чтобы сделать элемент видимым, у него вызывается метод pack(). В итоге вверху окна будет красоваться кнопка:

button

Каждый виджет, в том числе кнопка, имеет ряд атрибутов, которые влияют на ее визуализацию и которые мы можем настроить через конструктор:

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

Параметры bg - background и fg - foreground получают значение цвета. Результат выполнения:

button_customize

Параметры виджета

Всего же конструктор Button может принимать следующие параметры:

Button(master, options)
1

Параметр master представляет ссылку на родительский контейнер. В случае выше это могло бы быть само графическое окно, и мы могли написать:

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

Однако если в коде создается одно окно, то кнопка и любой другой элемент уже по умолчанию размещаются в этом окне. Поэтому первый параметр можно опустить, как в примерах выше. Если бы у нас в коде создавалось бы несколько окон, тогда мы могли бы передать в 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

Имена переменным нужно задавать корректно: состоят из двух слов (или более), отражающих суть содержания объекта, слова соединяются нижним подчеркиванием.

  1. Создайте окно с двумя кнопками: "OK" и "NOT OK".
  2. Создайте окно с тремя кнопками: "OK", "Are you sure?", "Maybe NOT?"
  3. Создайте окно с двумя кнопками: "OK" и "NOT OK", и примените для каждой кнопки параметр underline=1. Какие изменения вы заметили?
  4. Решение необходимо найти в интернете. Создайте окно с двумя кнопками:
    • кнопка с иконкой (рисунок),
    • кнопка с рисунком и надписью.