4.2. Кнопка

Назад до змісту

Дайте відповіді на запитання

1. Як створити кнопку?

Щоб створити кнопку, потрібно використати команду ім'я_кнопки = Button() або ім'я_кнопки = Button(властивість = значення). У першому випадку кнопка буде створена зі стандартними налаштуваннями, а в другому — із заданими властивостями.

2. Як розмістити створену кнопку у вікні?

Кнопку можна розмістити у вікні двома способами :

  • За допомогою методу pack(), який автоматично розміщує кнопку у вікні, зазвичай по центру зверху.
  • За допомогою методу place(x=..., y=...), який розміщує верхній лівий кут кнопки у точці вікна із заданими координатами x та y.

3. Які ви знаєте властивості кнопки? Що визначає кожна з них?

Основні властивості кнопки :

  • text — визначає текст, який буде відображатися на кнопці.
  • width — встановлює ширину кнопки в символах.
  • height — встановлює висоту кнопки в рядках тексту.
  • bg (або background) — визначає колір фону кнопки.
  • fg (або foreground) — визначає колір тексту на кнопці.
  • font — встановлює шрифт, розмір та накреслення (наприклад, жирний або курсив) тексту.
  • state — визначає стан кнопки, наприклад, normal (звичайна) або disable (недоступна).

4. Як задати значення властивостей кнопки?

Значення властивостей можна задати двома способами :

  1. Безпосередньо при створенні кнопки, перелічивши їх у дужках: bt = Button(text='Натисни', width=15).
  2. Після створення кнопки, використовуючи такий синтаксис: btn['width'] = 25 або btn['fg'] = 'blue'.

5. Якими способами можна призначити для кнопки обробники подій?

Для кнопки можна призначити обробники подій двома основними способами :

  • Використовуючи метод bind(), який дозволяє пов’язати будь-яку подію з її обробником.
  • Використовуючи властивість command, яка є простішим способом для обробки події клацання мишею.

6. Як можна призначити для кнопки обробник події Click?

Щоб призначити обробник події клацання (Click), потрібно під час створення кнопки вказати ім’я процедури-обробника як значення властивості command. Наприклад: btn = Button(command=my_function).

7. Як у проєкті змінити значення властивостей кнопки?

Для зміни властивостей кнопки під час виконання проєкту (наприклад, в обробнику події) використовується команда виду: ім'я_кнопки['назва_властивості'] = нове_значення. Наприклад, щоб змінити текст на кнопці btn, можна написати btn['text'] = 'Новий текст'.

Обговоріть і зробіть висновки

1. Чим відрізняється у проєкті створення та відкриття вікна від створення та розміщення кнопки?

Створення та відкриття вікна — це початковий етап, що створює головний контейнер для всіх інших елементів. Кнопка ж є дочірнім елементом, який створюється вже після вікна і обов’язково має бути в ньому розміщений за допомогою методів pack() або place(). Вікно створюється командою Tk(), а кнопка — Button().

2. Що спільного і відмінного в обробниках події для вікна і для кнопки?

  • Спільне: Для обох, і для вікна, і для кнопки, можна призначати обробники подій за допомогою методу bind(), який дозволяє пов’язати функцію з певною подією.
  • Відмінне: Основна відмінність полягає в обробці події клацання лівою кнопкою миші. Для кнопки існує спеціальна властивість command, яка спрощує призначення обробника для цієї події. При використанні command в заголовку процедури-обробника не потрібно вказувати аргумент event, на відміну від використання методу bind().

Виконайте завдання

1. Створіть проєкт, у якому в результаті настання події Click для кнопки її ширина стане 30 символів, висота 3 символи і зміниться текст на кнопці на назву вашого населеного пункту.

from tkinter import *

def click():
    btn['width'] = 30
    btn['height'] = 3
    btn['text'] = 'Київ'

window = Tk()
btn = Button(command=click)
btn.pack()
window.mainloop()

2. Створіть проєкт, у якому в результаті настання події MouseMove для кнопки її ширина стане 20 символів, висота 4 символи і зміниться текст на кнопці на ваше прізвище.

from tkinter import *

def mouse_move(event):
    btn['width'] = 20
    btn['height'] = 4
    btn['text'] = 'Петренко'

window = Tk()
btn = Button(text='Натисни', width=10, height=2, bg='lightblue')
btn.bind('<Motion>', mouse_move)
btn.pack()
window.mainloop()

3. Створіть проєкт, у якому в результаті настання події DoubleClick для кнопки зміниться її ширина і висота, текст на кнопці, колір фону і колір тексту, а для вікна – його розміри, колір фону, текст у рядку заголовка.

from tkinter import *

def double_click(event):
    btn['width'] = 25
    btn['height'] = 5
    btn['text'] = 'Подвійне клацання'
    btn['bg'] = 'yellow'
    btn['fg'] = 'red'
    window.geometry('400x300')
    window['bg'] = 'lightgreen'
    window.title('Нове вікно')

window = Tk()
btn = Button()
btn.bind('<Double-Button-1>', double_click)
btn.pack()
window.mainloop()

4. Створіть проєкт, у якому розташуйте у вікні три кнопки однакових розмірів одна під одною. Початковий колір верхньої кнопки – червоний, двох інших – чорний. Створіть обробники події Click для кожної кнопки такі, щоб вибір середньої кнопки робив її жовтою, а дві інші – чорними; вибір нижньої кнопки робив її зеленою, а дві інші – чорними; вибір верхньої кнопки робив її червоною, а дві інші – чорними.

from tkinter import *

def click1():
    btn1['bg'] = 'red'
    btn2['bg'] = 'black'
    btn3['bg'] = 'black'

def click2():
    btn1['bg'] = 'black'
    btn2['bg'] = 'yellow'
    btn3['bg'] = 'black'

def click3():
    btn1['bg'] = 'black'
    btn2['bg'] = 'black'
    btn3['bg'] = 'green'

window = Tk()
btn1 = Button(text='Кнопка 1', width=15, height=2, bg='red', command=click1)
btn2 = Button(text='Кнопка 2', width=15, height=2, bg='black', fg='white', command=click2)
btn3 = Button(text='Кнопка 3', width=15, height=2, bg='black', fg='white', command=click3)
btn1.pack()
btn2.pack()
btn3.pack()
window.mainloop()

5. Створіть проєкт, у якому розташуйте у вікні три кнопки горизонтально одну поруч з іншою. Установіть такі значення їх властивостей, щоб на початку виконання проєкту перша кнопка була видима і доступна, друга – видима і недоступна, третя – невидима і недоступна. Для кожної кнопки створіть обробник події Click, щоб вибір першої кнопки робив її невидимою і недоступною, другу кнопку – видимою і доступною, третю кнопку – видимою і недоступною; вибір другої кнопки робив її невидимою і недоступною, третю кнопку – видимою і доступною, першу кнопку – видимою і недоступною; вибір третьої кнопки робив її невидимою і недоступною, першу кнопку – видимою і доступною, другу кнопку – видимою і недоступною.

from tkinter import *

# Створюємо вікно
window = Tk()
window.title('Проєкт з трьома кнопками')
window.geometry('400x100')

# Обробник події для кнопки 1
def click1():
    button1.place_forget()
    button1['state'] = 'disable'
    button2.place(x=10, y=30)
    button2['state'] = 'normal'
    button3.place(x=140, y=30)
    button3['state'] = 'disable'

# Обробник події для кнопки 2
def click2():
    button2.place_forget()
    button2['state'] = 'disable'
    button3.place(x=140, y=30)
    button3['state'] = 'normal'
    button1.place(x=10, y=30)
    button1['state'] = 'disable'

# Обробник події для кнопки 3
def click3():
    button3.place_forget()
    button3['state'] = 'disable'
    button1.place(x=10, y=30)
    button1['state'] = 'normal'
    button2.place(x=75, y=30)
    button2['state'] = 'disable'

# Створюємо три кнопки
button1 = Button(text='Кнопка 1', width=10, command=click1)
button2 = Button(text='Кнопка 2', width=10, state='disable', command=click2)
button3 = Button(text='Кнопка 3', width=10, state='disable', command=click3)

# Розміщуємо кнопки горизонтально
button1.place(x=10, y=30)
button2.place(x=75, y=30)
# Кнопка 3 не розміщується, бо вона невидима

# Запускаємо вікно
window.mainloop()

Готуємось до вивчення нового матеріалу

1. Які ще елементи керування, крім кнопки, ви використовували під час роботи з різними програмами?

Під час роботи з програмами використовуються такі елементи керування:

  • Текстові поля для введення інформації
  • Списки вибору з варіантами
  • Прапорці для позначення опцій
  • Перемикачі для вибору одного з варіантів
  • Повзунки для регулювання значень
  • Меню для вибору команд
  • Вкладки для перемикання між розділами

2. Для чого використовується графічний об’єкт Напис у текстовому процесорі Word?

Графічний об’єкт Напис у Word використовується для розміщення тексту в довільному місці документа з можливістю його вільного переміщення та форматування. Напис дозволяє створювати текстові блоки, які не прив’язані до основного потоку тексту, змінювати їх розмір, колір фону, межі та розташування на сторінці.

Залишити коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Прокрутка до верху