Тема 21(8): Елемент керування "Кнопка"
План вивчення теми:
Програмний об'єкт КНОПКА та його характеристики
Д/з: опрацювати:
§6.3
веб-сторінку уроку 21
Одним з компонентів (елементів керування), який можна використати в проєктах, є кнопка - Button.
Розміщення кнопки у вікні проекту:
Створити новий об’єкт типу Button, пов’язати його зі змінною, яка визначатиме ім’я об’єкта.
Установити значення властивостей кнопки або залишити їх за замовчуванням.
Розмістити створений об’єкт у вікні.
Для створення кнопки та пов’язування її зі змінною використовують команду вигляду:
<ім’я_кнопки> = Button() - команда створення кнопки зі значеннями властивостей висота, ширина і колір, які установлено за замовчуванням, без напису на ній.
або <ім’я_кнопки> = Button(<набір властивостей та їх значень>) - команда створення кнопки, значення властивостей якої задано в цій команді. У дужках через кому вказують пари <властивість> = <значення>.
Властивості кнопки:
text=”текст” – текст кнопки;
fg=”колір” – колір тексту кнопки;
font=”шрифт та розмір шрифту” – висота шрифту тексту кнопки;
bg=”колір” – колір кнопки (значенням може бути назва кольору англійською);
width=число – ширина кнопки (кількість символів, які можуть бути розміщені поруч по горизонталі);
height=число – висота кнопки (кількість символів, які можуть бути розміщені один під одним по вертикалі);
padx=число - відступ від границі до вмісту по горизонталі;
pady=число - відступ від границі до вмісту по вертикалі;
state - стан кнопки (normal - нормальний, disable - недоступний).
Методи, що використовуються для об’єкта кнопка:
pack() - розташування кнопки нижче попередньо створеного об'єкта, під рядком заголовка вікна з однаковими відступами від лівої та правої меж вікна.
Якщо у вікні розміщується декілька кнопок, то вони будуть відображатися одна під одною без відступів між ними. Якщо потрібно розмістити кнопку з деяким відступом від рядка заголовка або попередньої кнопки, то в дужках можна указати цей відступ у пікселях як значення властивості pady. Наприклад, button.pack(pady=20) - кнопку буде розміщено з відступом 20 пікселів від верхньої межі або попередньої кнопки.
place(x=<відступ від лівої межі вікна>,y=<відступ від верхньої межі вікна>) - вказує точне місцезнаходження кнопки, верхня ліва вершина кнопки розміщується в точці вікна із заданими координатами х та у.
Наприклад, button.place(x=200,y=100) - верхня ліва вершина кнопки буде розміщена у точці з координатами (200, 100).
pack_forgat() або place_forgat() дозволить зробити кнопку невидимою.
pack() або place() зробить кнопку знову видимою.
Пов'язати з кнопкою обробник будь-якої події можна так само, як з вікном, використовуючи метод bind().
Щоб прикріпити до віджета обробник події "Натискання на кнопку", необхідно під час створення цього об’єкта в переліку атрибутів указати параметр command і присвоїти йому посилання на метод, який буде виконуватися в разі натискання:
Приклад 1 застосування властивості кнопки на прикладі (всі властивості зручніше записати в дужки через кому).
button=Button(text=“Змінити", width=15) # Команда створення кнопки з іменем buttton з текстом "Змінити" завширшки 15 символів
but=Button(Window, width=4, height=2, bg="green”, text=“0k", fg=“red“, font="Times 12”)
# Створення кнопки з іменем but та встановлення для неї таких властивостей:
колір фону зелений,
текст "ОК" червоного кольору,
шрифт Times New Roman 12,
розміри кнопки: 4 знаки - ширина і 2 знаки – висота. Розміри кнопки залежать
від кількості символів тексту в кнопці та розміру шрифту тексту.
Завдання 1
Створити проєкт із створення кнопки та розміщення її у вікні.
from tkinter import* #імпортує модуль tkinter у проєкт;
root=Tk() #створює вікно з іменем root;
root.geometry('300x200+400+100') #визначає розміри та місце розташування вікна;
button=Button(text='Змінити',width='15') #створює кнопку з іменем button з текстом на ній "Змінити" та шириною 15 символів;
button.pack(pady=20) #розміщує кнопку з відступом 20 пікселів від верхньої межі вікна.
Приклад 2 обробника події Click для кнопки, яка містить команду встановлення жовтого кольору вікна.
Доповніть попередній проект командами виділеними жирним шрифтом
from tkinter import*
def click(event):
root['bg']='yellow'
root=Tk()
root.geometry('600x400+350+200')
button=Button(text='Змінити',width='15')
button.pack(pady=30)
button.bind('<1>', click)
Для кнопки подією за замовчуванням є клацання лівої кнопки миші. Тому пов’язати з кнопкою метод опрацювання саме цієї події можна простіше:
під час створення кнопки вказати ім’я відповідного обробника події як значення атрибуту command;
обробник події з указаним іменем описати перед створенням кнопки;
у заголовку не потрібно вказувати посилання на подію, що відбулася, – event.
Внесіть зміни у верхній код згідно з нижче наведеного зразка:
from tkinter import* #імпортує модуль tkinter у проєкт;
def click():
root['bg']='yellow'
root=Tk() #створює вікно з іменем root;
root.geometry('600x400+350+200') #визначає розміри та місце розташування вікна;
#button=Button(text='Змінити') #створює кнопку з іменем button з текстом на ній "Змінити" button=Button(text='Вибери мене', command=click)
button.pack(pady=30) #розміщує кнопку з відступом 20 пікселів від верхньої межі вікна.
#button.bind('<1>', click)
Приклад 3
На малюнку наведено приклад обробника події Click для кнопки – процедури з іменем click(), яка містить команди: установлення для кнопки червоного кольору фону; установлення шрифту Arial розміром 14 пікселів; виведення на кнопці вказаного тексту; установлення для кнопки стану недоступна.
Завдання 2
Створити проєкт, який містить обробник події Click для кнопки, який містить команди змінення розмірів вікна на 300х300 та встановлення жовтого кольору вікна. Команди для виконання проєкту завдання 2 розташовані на малюнку нижче. Кнопка з іменем but має такі властивості: ширина - 4, висота - 2 символи, текст Оk червоного кольору на зеленому фоні шрифтом Times 12.
Завдання 3