Створення програми з кнопками та написами


Напишемо програму, яка створює вікно з полотном і кнопкою, при натисненні на яку з'являється довільний прямокутник довільного кольору.
Підключаємо бібліотеки 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,  і трьома кнопками:
      -  при натискуванні на першу - очищується полотно;
      -  на другу -  зникає полотно для малювання;
      -  третя - закривається вікно.

Комментариев нет:

Отправить комментарий