Тема 35(8): Елементи для введення даних: перемикачі.
План вивчення теми:
Прапорці та їх властивості
Використання прапорців
Д/з: опрацювати:
§6.9
веб-сторінку уроку 35(8)
Перемикачі (радіокнопки) - це керуючі елементи, що використовують для введення даних під час реалізації алгоритмів з розгалуженням, з метою вибору одного варіанту з декількох можливих.
Перемикачі однієї групи повинні бути пов'язані з однією змінною цілого типу.
Розміщення перемикачів у вікні проекту:
Створити змінну цілого типу, щоб мати можливість фіксувати під час виконання проєкту який з групи перемикачів обраний, а які не обрані
<ім’я змінної> = IntVar()
Командою Radiobutton послідовно створити декілька перемикачів та пов’язати їх у групу через одну й ту ж змінну:
<ім’я перемикача1> = Radiobutton(text = ‘<текст підпису1>’, variable = <ім’я змінної>, value=<значення змінної>)
<ім’я перемикача2> = Radiobutton(text = ‘<текст підпису2>’, variable = <ім’я змінної>, value=<значення змінної>)
....
<ім’я перемикачаN> = Radiobutton(text = ‘<текст підписуN>’, variable = <ім’я змінної>, value=<значення змінної>)
де:
властивість text визначає текст підпису перемикача;
властивість variable визначає ім'я змінної, яка пов'язана з перемикачем. Повинна бути одна і та є сама змінна для всіх перемикачів однієї групи;
властивість value визначає значення, яке набуде змінна, якщо буде вибрано саме цей перемикач. Значення повинні бути різними для всіх перемикачів однієї групи.
Командою pack() або place() задати координати розміщеня кожного перемикача у вікні програми.
Фрагмент проєкту зі створення три перемикачі однієї групи, для яких змінна choice набуває відповідно значень 1, 2, 3.
Зауваження*:
Якщо потрібно розмістити у вікні кілька незалежних груп перемикачів, то кожну групу перемикачів треба пов'язати з окремою змінною.
Властивості перемикача:
text=”текст” – текст підпису перемикача;
fg=”колір” – колір тексту перемикача;
font=”шрифт та розмір шрифту” – висота шрифту тексту перемикача;
bg=”колір” – колір фону перемикача (значенням може бути назва кольору англійською);
width=число – ширина перемикача (кількість символів, які можуть бути розміщені поруч по горизонталі);
height=число – висота перемикача (кількість символів, які можуть бути розміщені один під одним по вертикалі);
pady=число - відступ від границі до перемикача по вертикалі;
Методи, що використовуються для об’єкта перемикач:
<ім’я змінної>.set(True) - команда застосовується щоб одразу після запуску проєкту перемикач був у стані вибраний (англ. set – установити),
Наприклад, після виконання команди choice.set(1) стане вибраним перший перемикач.
<ім’я змінної>.get() - використовується щоб дізнатися у ході виконання проєкту, який з перемикачів вибрано
Наприклад choice.get(). Значення цієї змінної можна використовувати в проєктах у команді розгалуження.
pack() - розташування прапорця нижче попередньо створеного об'єкта з однаковими відступами від лівої та правої меж вікна.
Якщо потрібно розмістити керемикач з деяким відступом від рядка заголовка або попереднього об'єкта, то в дужках можна указати цей відступ у пікселях як значення властивості pady.
Наприклад, flag.pack(pady=20) - перемикач буде розміщено з відступом 20 пікселів від верхньої межі або попередньої кнопки.
place(x=<відступ від лівої межі вікна>,y=<відступ від верхньої межі вікна>) - вказує точне місцезнаходження перемикача, верхня ліва вершина перемикача розміщується в точці вікна із заданими координатами х та у.
Наприклад, flag.place(x=200,y=100) - верхня ліва вершина перемикача буде розміщена у точці з координатами (200, 100).
#Код-шаблон
from tkinter import*
#підпрограма (процедура) для опрацювання даних
def click():
#
#
#
#створення вікна програми розміром 300на200 пікселів
root=Tk()
root.geometry("300x250")
#створення та налаштування поля №1 для введення x
e1=Entry()
e1.pack(pady=10)
#створення та налаштування поля №2 для введення y
e2=Entry()
e2.pack(pady=10)
#створення та налаштування напису №1 для виведення z
lab1=Label()
lab1.pack(pady=10)
#створення та налаштування кнопки №1 для запуску процедури
b1=Button(text='Виконати', command=click)
b1.pack(pady=10)
Увага! Під час роботи з комп'ютером дотримуйтеся вимог БДЖ та санітарно-гігієнічних норм.
Завдання 1
Розглянемо, як можна, використовуючи перемикачі, змінювати значення тільки однієї з властивостей вікна: або заголовок, або колір, або розміри.
Використаємо в проєкті три перемикачі та кнопку.
Зауваження*
Якщо під час виконання проєкту не вибрати жодного з перемикачів, а вибрати кнопку, то зміняться розміри вікна (подумайте самостійно, чому відбудуться саме такі змінення). Щоб так не сталося, потрібно замість ключового слова else використати ще одну команду elif.
from tkinter import *
def click():
if choice.get() == 1:
root.title(‘Заголовок змінений’)
elif choice.get() == 2:
root[‘bg’] = ‘red’
elif choice.get() == 3:
root.geometry(‘600x300’)
root=Tk()
root.geometry("300x250")
choice = IntVar()
switch1 = Radiobutton(text = ‘Заголовок’, variable = choice, value = 1)
switch1.pack(pady = 10)
switch2 = Radiobutton(text = ‘Колір’, variable = choice, value = 2)
switch2.pack(pady = 10)
switch3 = Radiobutton(text = ‘Розмір’, variable = choice, value = 3)
switch3.pack(pady = 10)
btn = Button(text = 'Змінити',command = click)
btn.pack(pady=10)
#btn.place(x = 50, y = 100)
Завдання 2
Удоскональте програмний код за зразком
Завдання 3
Побудуйте математичну модель і створіть проєкт, у якому можна обчислити суму, або різницю, або добуток, або частку від ділення двох довільних чисел залежно від вибраного перемикача.
Завдання 4