Напишемо програму, яка створює вікно з
полотном і кнопкою, при натисненні на яку з'являється довільний прямокутник
довільного кольору.
Підключаємо бібліотеки Tkinter і whrandom.
from Tkinter import *
from whrandom import *
Зрозуміло, що треба написати функцію, що розташовує на полотні
довільний прямокутник. Такий прямокутник ми вже створювали, лише треба виділити
цю частину програми у вигляді функції.
def new_rectangle():
Визначимо координати несусідніх вершин прямокутника наступним
чином:
x1 =
randint(0, 400)
y1 = randint(0,
200)
x2 = randint(0,
400)
y2 = randint(0,
200)
Задамо колір. Його значення складемо у rgb-форматі. Відтінок
червоного буде випадковим числом в
межах від 0 до 255, тобто одним з 256 значень.
red = randint(0, 255)
Аналогічно визначимо значення
green =
randint(0, 255)
blue = randint(0,
255)
!
З трьох значень ми формуємо одне, використовуючи формат
c =
"#%02x%02x%02x" % (red, green, blue)
Колір, як і в HTML, береться у лапки,
починається знаком дієза # і записується шестизначним шістнадцятковим числом.
Тут %x означає подання числа у
шістнадцятковій системі числення. Цифри 02 перед х визначають, що число має
бути дворозрядним (двоцифровим). Якщо навіть якась компонента дорівнює,
наприклад 11, то цей формат перетворить її на 0b, а не просто у b.
Далі створюємо відповідний прямокутник
canvas.create_rectangle(x1,
y1, x2, y2, fill=c)
Тіло функції завершилось. Всі інші стрічки програми будуть йти без
відступу.
Треба:
1. створити вікно розмірами 400х200, саме таких максимальних
значень можуть набирати координати вершин прямокутника;
2. розмістити на ньому полотно для малювання під назвою canvas -
саме таке ім'я застосовується у функції;
3. кнопку, при натискові на яку викликається написана функція
new_rectangle.
Спробуйте самостійно дописати програму і перевірити її роботу.
Подамо результат виконання цієї програми після декількох
натискувань кнопки.
Додамо до цієї програми частину коду, що створить ще дві
кнопки: одна - очищує полотно, друга - закриває вікно.
Для очищення полотна напишемо функцію з іменем clear_all. У ній до
полотна canvas застосуємо метод delete з
параметром all:
def clear_all():
canvas.delete("all")
Назвемо кнопку clear_button, на ній буде розміщено текст ‘Clean
canvas!' при натискові буде викликатися функція clear_all.
Спробуйте самостійно написати створення такої кнопки, не забудьте
застосувати метод, який розташує кнопку у вікні.
Є метод destroy, який ніби знищує об'єкт. Ми хочемо
застосувати його для вікна root, отже у коді програми буде
root.destroy()
Цей метод повинен виконатися при натисненні на кнопку. Нехай на
кнопці буде написано "QUIT".
Спробуйте самостійно написати створення такої кнопки. Перевірте,
чи працює ваша програма.
Завдання:
Напишіть програму, яка створює вікно з полотном, на якому вже
розташовано по центру круг радіуса 50, і трьома
кнопками:
-
при
натискуванні на першу - очищується полотно;
-
на
другу - зникає полотно для малювання;
-
третя
- закривається вікно.
Комментариев нет:
Отправить комментарий