Елементи керування «напис» та «кнопка»


Клас Button (створення кнопок у вікні)
Створимо вікно з двома кнопками, що будуть розташовуватися одна під одною.

from Tkinter import *
root = Tk()
b1 = Button(root, text='My first button!')
b1.pack()
b2 = Button(root, text='Second!')
b2.pack()
root.mainloop()
  
!     Якщо розміри кнопки не задані, то вони визначаються текстом на ній.

Ускладнимо завдання: Нехай при натисненні на першу кнопку видається повідомлення "Hello!".
По-перше, подія пов'язана з кнопкою, тому кнопка має містити атрибут, що обробляє цю подію. Цей атрибут носить назву command. Яке ж може бути його значення? Яка нам знайома структура виконується лише тоді, коли ми її викликаємо? Це функція. Напишемо функцію, яка виводить дане повідомлення. Потім значенням атрибуту command поставимо ім'я функції. Вона буде викликатися лише при натисненні на кнопку.

from Tkinter import *
def hello():
    print 'Hello!'
root = Tk()
b1 = Button(root, text='My first button!', command=hello)
b1.pack()
root.mainloop()

Текст 'Hello!' виводиться не у нашому вікні, а у вікні Python Shell.
Результат запуску програми і п'яти натискувань кнопки:
            Розгляньте ще один приклад, у якому при натисненні на першу кнопку виводиться "Hello!", друга кнопка дозволяє обрахувати суму двох чисел.

from Tkinter import *
def hello():
    print 'Hello!'
def sum():
    print 'Find the sum of two numbers a and b.'
    a = input('vvedi a: ')
    b = input('vvedi b: ')
    print a, '+' , b, '=', a+b
root = Tk()
b1 = Button(root, text='My first button!', command=hello)
b1.pack()
b2 = Button(root, text='Second button!', command=sum)
b2.pack()
root.mainloop()

Результат запуску програми і натискування спочатку на першу, потім на другу кнопку (при цьому вводяться два числа і виводиться результат), і  три рази на першу кнопку:

Домашнє завдання.

Використаємо бібліотеку turtle для опрацювання натиснення на третю кнопку. Нехай при цьому в окремому вікні малюється n-кутник.

!  При підключенні модуля turtle повинен обов'язково йти перед модулем Tkinter, бо вікно turtle написане за допомогою Tkinter.

from turtle import *
from Tkinter import *
def hello():
    print 'Hello!'
def sum():
    print 'Find the sum of two numbers a and b.'
    a = input('vvedi a: ')
    b = input('vvedi b: ')
    print a, '+' , b, '=', a+b
def line():
    n = input("vvedi kilkist storin bagatokutnika: ")
    i = 1
    while i <= n:
        forward(20)
        left(360/n)
        i = i+1
root = Tk()
b1 = Button(root, text="My first button!", command=hello)
b1.pack()
b2 = Button(root, text="Second button", command=sum)
b2.pack()
b3 = Button(root, text="Use turtle", command=line)
b3.pack()
root.mainloop()

Результат послідовного натискування на першу, другу (введення двох чисел, виведення результату) і третю кнопки (введення кількості сторін):


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

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