Клас Button
Командна кнопка застосовується для запуску чи закінчення певного процесу.
Синтаксис створення об’єкта класу Button:
змінна = Button(батьківський_віджет, [властивість = значення])
Під час створення об’єкта Button можна задати властивості для налаштування вигляду кнопки text (текстовий рядок), width (ширина), height(висота), bg (колір тла), fg (колір символів), font (параметри шрифту).
Для розташування об’єкта у вікні використовуються методи-пакувальники:
  • змінна.place(x, y), де параметри x і y установлюють зміщення елемента по горизонталі й вертикалі відносно верхнього лівого кута вікна;
  • змінна.pack() — розташування об'єкта нижче попередньо створеного.
Якщо не застосувати метод-пакувальник, то напис у вікні так і не з’явиться, хоча він є в програмі.
Приклад:
Створимо командну кнопку із написом ok.
from tkinter import*
root = Tk()
root.geometry('200x100')
btn = Button(root, text = 'ok', width = 10, height = 2, font = 'Arial 16')
btn.pack()
root.mainloop()
Щоб додати на кнопку малюнок з графічного файла, потрібно зберегти у змінній місцерозташування файла за допомогою функції PhotoImage(file = 'ім'я файла')
і присвоїти атрибуту image значення цієї змінної.
Засобами tkinter можна завантажувати зображення форматів .gif, .png.
Приклад:
Створимо командну кнопку і додамо на кнопку малюнок із файла Picture.gif, який міститься в тій самій папці, що і файл програми.
from tkinter import*
root = Tk()
my_image = PhotoImage(file = 'Picture.gif')
btn = Button(root, image = my_image)
btn.pack()
root.mainloop()
147.PNG
Обробка події натискання на кнопку
Щоб прикріпити до віджета обробник події Натискання на кнопку, необхідно під час створення цього об’єкта в переліку атрибутів указати параметр command і присвоїти йому посилання на метод, який буде виконуватися в разі натискання.
 
146.PNG
Приклад:
Створимо «стрибаючу» кнопку. Після натискання на кнопку координати розташування кнопки змінюються випадковим чином.
from random import randint
from tkinter import*
def btn_click():
      x1 = randint(5, 190)
      y1 = randint(5, 95)
      btn.place(x = x1, y = y1)
root = Tk()
root.geometry('200x100')
btn = Button(root, text = 'OK', command = btn_click)
btn.place(x = 10, y = 10)
root.mainloop()
Джерела:
Інформатика : підруч. для 8 кл. закл. загал. серед. освіти / [О. О. Бондаренко, . В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов]. — Харків : Вид-во Ранок», 2021