Отримання знань
дистанційна підтримка освіти школярів
Кнопки на вікні. Створення кнопок (пояснення)
Для того, щоб створити кнопку на вікні потрібно виконати дві команди. Перша створює кнопку, друга - її розміщує:
назва_кнопки=Button(до якого вікна відноситься, text="текст на кнопці", command="яку команду виконує")
назва_кнопки.pack()
Для того, щоб кнопка працювала, спочатку потрібно створити підпрограму (функцію), до якої вона відноситься, а потім підключити кнопку до цієї програми.
Задача “Canvas_30_01.py”
Написати програму, яка на вікні з надписом “knopku” розміщує полотно зеленого кольору і 2 кнопки: Trukytnuk (зображує довільно розташований трикутник у ІІ-ій та ІІІ-ій чвертях) і Oval (зображує овал у І-ій та IV-ій чвертях).
Розв’язання
from Tkinter import *
# підключаємо бібліотеку Tkinter для роботи з вікнами
from random import *
# підключаємо генератор випадкових чисел random
def Triang():
# описуємо функцію Triang (“Трикутник”)
x1=randint (20, 40)
y1=randint (20, 50)
# генеруємо координати (x1, y1) першої вершини трикутника
x2=randint (100, 160)
y2=randint (140, 180)
# генеруємо координати (x2, y2) другої вершини трикутника
x3=randint (60, 140)
y3=randint (200, 220)
# генеруємо координати (x3, y3) третьї вершини трикутника
paint.create_polygon (x1, y1, x2, y2, x3, y3, fill='red', outline='darkred', width=4)
# на полотні створюємо трикутник із вершинами у точках (x1, y1), (x2, y2) і (x3, y3)
# задаємо колір всередині трикутника fill, колір межі outline та товщину межі width - 4 пікселі
def Elips():
# описуємо функцію Elips (“Еліпс”)
x1=randint (200, 260)
y1=randint (20, 50)
# генеруємо верхню ліву вершину прямокутника (x1, y1), в який буде вписано овал
x2=randint (270, 360)
y2=randint (190, 230)
# генеруємо нижню праву вершину прямокутника (x2, y2), в який буде вписано овал
paint.create_oval (x1, y1, x2, y2, fill='blue', outline='darkblue', width=3)
# на полотні створюємо овал, вписаний у прямокутник із протилежними вершинами (x1, y1) і (x2, y2)
# задаємо колір всередині овалу fill, колір межі outline та товщину межі width - 3 пікселі
win=Tk()
# створюємо об’єкт “вікно” із назвою win
win.title ('knopku')
# вказуємо заголовок вікна “knopku”
win.config (bg='#32CD32')
# задаємо колір фону вікна
paint=Canvas (win, bg='#90EE90')
# створюємо об’єкт “полотно для малювання” paint, яке буде розміщуватися на вікні win; вказуємо колір фону
paint.pack()
# розміщуємо створене полотно paint на вікні win
but1=Button (win, text='Trukytnuk', bg='#B22222', fg='#FFB6C1',command=Triang)
# створюємо об’єкт “кнопка” but1, яка буде розміщуватися на вікні win, із надписом 'Trukytnuk'
# задаємо колір фону bg, колір надпису на кнопці fg та функцію, яка виконуватиметься при натискуванні кнопки
but1.pack()
# розміщуємо кнопку but1 на вікні win
but2=Button (win, text='Oval', bg='#87CEEB', fg='#000080', command=Elips)
but2.pack()
win.mainloop()
# запускаємо вікно
Задача “Canvas_30_02.py”
Додати до попередньої програми кнопку Clean, яка б очищувала полотно при натискуванні на неї.
Розв’язання
Слід дописати функцію:
def Clean():
paint.delete ('all')
# очистити все на полотні paint
Після створення та розміщення на вікні кнопок but1 і but2 дописуємо:
but3=Button (win, text='Clean', bg='#FFD700', fg='#D2691E', command=Clean)
but3.pack()