Ще одним із способів введення даних є перемикачі та прапорці. Вони представлені у вигляді невеликих списків із
можливістю вибору одного - перемикачі
Для взаємодії з прикладною програмою користувачеві можна не лише надати можливість уводити інформацію з клавіатури, а й обирати певні варіанти із запропонованих, використовуючи перемикачі або прапорці.
Перемикачі використовують, коли користувач має обрати лише один варіант із запропонованих. Так ці елементи доцільно використовувати для створення тестів, опитувань тощо.
Почнемо із перемикачів, їх ще називають радіоточками .
Так, як перемикачі слугують для вибору одного варіанта серед запропонованих, то вони представляються групою, в якій активним може бути тільки один перемикач. Якщо перемикач обрано, то всередині нього з’являється позначка .
Але їх створити трішки складніше, ніж будь-який об’єкт, який ми створювали раніше.
Перемикач — це не єдиний об’єкт, а група об’єктів, тому спочатку створюється група перемикачів, а потім самі перемикачі за допомогою функції Radiobutton():
ім’я_групи_перемикачів=IntVar()
назва_ перемикача1=Radiobutton(назва_вікна, text=“Текст перемикача1”, variable=ім’я_групи_перемикачів, value=значення_перемикача1)
назва_перемикача2=Radiobutton(назва_вікна, text=“Текст перемикача2”, variable=ім’я_групи_перемикачів, value=значення_перемикача2)
value – значення перемикача, яке буде набувати група перемикачів в залежності від вибору користувача. Зазвичай значення перемикача – це натуральні числа, починаючи від 1, хоча ви можете встановити і інші. Та головне щоб для всіх перемикачів вони були різними.
Ім’я групи перемикачів – це цілочисельна (IntVar) змінна із результатом вибору користувача програми. Та для того, щоб отримати значення, яке набула група перемикачів потрібно застосувати метод get(), з яким ми вже знайомі:
ім’я_групи_перемикачів.get()
Приклад 1
Нехай, ми маємо групу перемикачів grupa1, перший перемикач має значення 1, а другий – 2. Отже, якщо користувач вибере перший перемикач, то grupa1.get() буде мати значення 1.
Атрибути (властивості) перемикачів
Аргументи
● variable - ім’я групи перемикачів, до якої належить даний перемикач
● value - значення перемикача (числа)
● text - текст біля перемикача
є обов’язковими, без них перемикачі не будуть представляти із себе нічого.
Але є й необов’язкові атрибути:
● bg=“колір” - колір фону;
● fg=“колір” - колір тексту;
● font=“шрифт та розмір шрифту” - шрифт тексту біля перемикача.
І звичайно, кожен перемикач потрібно розмістити за допомогою методу
place (х=, у=)
Створіть графічне вікно програми, що містить заголовок "Найбільші міста України" та має розміри 400х200
2. Додайте команди розташування у вікні перемикачів:
Як видно з програмного коду, створення кожного перемикача складається з двох команд.
У першій команді змінній присвоюємо клас(конструктор) Radiobutton із властивістю root, text та відповідним значенням тексту.
У другій команді, як і для створення інших елементів керування , - метод розташування в графічному вікні.
3. Додайте метод root.mainloop()
5. Запустіть програму. В результаті у вікні мають з'явитися перемикачі, які знаходяться в положенні увімкнено. Спробуйте змінити стан перемикача.
5. Аби перемикачі реагували на дію користувача. Додамо групу перемикачів ім’я_групи_перемикачів=IntVar() та обов'язкові параметри
назва_ перемикача1=Radiobutton(назва_вікна, text=“Текст перемикача1”, variable=ім’я_групи_перемикачів, value=значення_перемикача1)
#Перемикачі
var=IntVar()
r1=Radiobutton(root,text="Киів",variable=var, value=1,command=btn_click)
r1.place(x=20,y=20)
r2=Radiobutton(root,text="Харків",variable=var, value=2,command=btn_click)
r2.place(x=20,y=60)
r3=Radiobutton(root,text="Одеса",variable=var, value=3,command=btn_click)
r3.place(x=20,y=100)
метод root.mainloop()
6. Запустіть програму ще раз. Тепер усі перемикачі вимкнені. Оберіть послідовно кожний із них.
ім’я_групи_перемикачів=IntVar()
назва_ перемикача1=Radiobutton(назва_вікна, text=“Текст перемикача1”, variable=ім’я_групи_перемикачів, value=значення_перемикача1)
назва_перемикача2=Radiobutton(назва_вікна, text=“Текст перемикача2”, variable=ім’я_групи_перемикачів, value=значення_перемикача2)
7. Додайте до програми команди створення написів, відповідно до завдання. В обох написах створіть рельєф з допомогою властивості relief=SUNKEN. Для другого напису додайте білий колір та вирівнювання по лівому краю
Lb2=Label(root,relief=SUNKEN,bg="white",justify=LEFT)
Lb2.place(x=100, y=60,width=200)
def btn_click():
if var.get()==1:
Lbl["text"]="Київ"
Lb2["text"]="Місто засноване у V столітті.\n Кількість населення - 2904000.\n Площа - 847,67 кв.км"
if var.get()==2:
Lbl["text"]="Харків"
Lb2["text"]="Місто засноване у 1654 р.\n Кількість населення - 1444000.\n Площа - 350 кв.км"
if var.get()==3:
Lbl["text"]="Одеса"
Lb2["text"]="Місто засноване у 1415 р.\n Кількість населення - 1012000.\n Площа - 162 кв.км"
Отже, для створення групи із 3-х перемикачів можна скористатися загальною інструкцією:
змінна=IntVar()
змінна1=Radiobutton(root,text,variable=var,value=1)
змінна1.place(x=,y=)
змінна2=Radiobutton(root,text,variable=var, value=2)
змінна2.place(x=,y=)
змінна3=Radiobutton(root,text,variable=var,value=3)
змінна3.place(x=,y=)
Спочатку слід оголосити цілочисельну змінну (групу), з якою будуть пов'язані усі перемикачі, далі створити перемикач з допомогою конструктора (класу) Radiobutton, у якому вказати обов'язкові параметри: властивість тексту text , властивість variable, що пов'язує перемикач зі змінною (групою), та властивість value, що визначає значення змінної у разі вибору даного перемикача користувачем. У наступному рядку - метод розташування перемикача у графічному вікні (пакувальник). Аналогічно створюються й інші перемикачі групи.