Отримання знань

дистанційна підтримка освіти школярів


Кнопки на вікні. Створення кнопок (пояснення)

    Для того, щоб створити кнопку на вікні потрібно виконати дві команди. Перша створює кнопку, друга - її розміщує:

       назва_кнопки=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()


В системі: гості - (1); користувачі - (0)