Інформація про новину
  • Переглядів: 77
  • Дата: 4-10-2021, 08:31
4-10-2021, 08:31

36. Елементи вибору в Python

Категорія: Інформатика





Попередня сторінка:  35. Логічний тип даних. Умовні оператор...
Наступна сторінка:   37. Алгоритми з повтореннями. Цикли в Pyth...

Вам, напевно, доводилось робити вибір певних значень із числа запропонованих у діалоговому вікні за допомогою таких елементів керування, як перемикачі та прапорці (рис. 36.1).

У Tkinter радіокнопки, з яких складаються перемикачі, є об’єктами класу Radiobutton, прапорці — об’єктами класу Checkbutton.

Розглянемо особливості створення та програмування елементів вибору.

Елемент керування Радіокнопка (Radiobutton)

Перемикачі, що складаються з двох або більше радіокнопок (ві-джетів класу Radiobutton), використовують, коли потрібно вибрати один із декількох варіантів. Радіокнопки в перемикачі взаємопов’язані, тобто у разі вибору іншої радіокнопки попередня вимикається.

Радіокнопки перемикача зв’язує спільна змінна. Назву цієї змі-ної зазначають в атрибуті variable кожної радіокнопки. Ця змінна має бути екземпляром одного з описаних у Tkinter класів: BooleanVar, IntVar, DoubleVar, StringVar і може набувати, відповідно, логічних, цілих, дробових або рядкових значень. Щоб отримати значення змінної, слід викликати метод get(), а щоб його змінити, — метод set().

Якщо радіокнопку вибрано, спільна змінна отримує значення її атрибуту value, і навпаки, надавши спільній змінній певне значення, можна увімкнути радіокнопку з відповідним значенням value.

Отже, для створення перемикача потрібно:

1) створити змінну var класу IntVar для керування радіокнопками;

2) створити потрібну кількість об’єктів класу Radiobutton із різними значеннями властивості value;

3) занести в атрибут variable усіх об’єктів назву змінної var.

Створимо три радіокнопки із заголовками "red", "yellow", "green".

Під час запуску програми виявиться ввімкненою радіокнопка rbR, оскільки значення її атрибута value = 0 збігається з поточним значенням змінної var. Якщо вибрати радіокнопку rbY, то вона увімкнеться, а кнопка rbR вимкнеться, і змінна var набуде значення 1. Щоб у відповідь на перемикання виконувалися певні дії, слід радіокнопки пов’язати з обробниками подій.

Пов’яжемо всі кнопки з функцією-обробником change(), у якій, залежно від того, яка з радіокнопок активна, змінюватимемо колір тла форми (рис. 36.2):

Розробимо програму Конструктор піц, яка під час формування замовлення дає змогу користувачеві вибирати розмір піци (рис. 36.3).

Елемент Прапорець (Checkbutton)

Прапорець — об’єкт класу Checkbutton — використовують у програмі там, де потрібно вмикати або вимикати певний режим, параметр тощо.

Об’єкти класу Checkbutton можна також розташувати групою, але при цьому кожна позначка встановлюється або знімається незалежно від стану інших прапорців. Тобто в групі Checkbutton можна встановити одночасно декілька прапорців, а також зняти всі.

Кожний об’єкт класу Checkbutton повинен мати свою змінну — екземпляр одного з перелічених вище класів:

Встановлюючи або знімаючи прапорець, користувач задає значення цієї змінної, таким чином впливаючи на подальшу роботу програми.

Якщо встановити прапорець, то пов’язана з ним змінна набуває значення onvalue, а якщо зняти — значення offvalue.

Для перевірки стану прапорця та активізації пов’язаних із ним параметрів слід отримати значення змінної:

Додамо до програми Конструктор піц (див. приклад 3) можливість вибирати складники піци (рис. 36.4).

Перед рядком із викликом конструктора Button() додамо команди для створення і налаштування прапорців:

Змінимо код обробника btn_click(), щоб під час розрахунку враховувався стан прапорців:

Віджети Radiobutton і Checkbutton підтримують більшість атрибутів зовнішнього вигляду, які є в інших елементів графічного інтерфейсу.

Питання для самоперевірки

1. У яких випадках використовують компонент Radiobutton?

2. Що забезпечує використання компонента Checkbutton?

3. Як забезпечити зв’язок між радіокнопками?

4. Назвіть три відмінності між об’єктами класу Radiobutton та об’єктами класу Checkbutton.

5. Як організувати перевірку стану прапорця?

6. Як до програми Конструктор піц додати ще один прапорець (наприклад, для вибору складника бекон)?

Вправа 36

Створити довідник «Міста України». Залежно від вибору перемикача виводити до текстового поля інформацію про місто.

1) Підготуйте декілька текстових файлів з інформацією про міста України. Збережіть файли в папку Міста України.

2) Створіть вікно програми із заголовком Міста України. Збережіть файл у папку Міста України. Додайте віджет textl класу Text:

3) Створіть перемикач із 5 ра-діокнопок із підписами, що відповідають назвам міст (рис. 36.5):

4) Опишіть спільний обробник події для перемикачів — функцію change(). Залежно від значення var.get() зі списку вибирається ім’я файлу з інформацією про вибране місто:

5) Опишіть функцію view(), у якій до поля віджета textl виводиться вміст файлу з назвою з аргумента filename.

6) Додайте кілька перемикачів із назвами ваших улюблених міст, підготуйте повідомлення про них. Випробуйте програму.

Комп'ютерне тестування

Виконайте тестове завдання 36 із автоматичною перевіркою результату.

 

Це матеріал з підручника Інформатика 8 клас Бондаренко (2021)

 



Попередня сторінка:  35. Логічний тип даних. Умовні оператор...
Наступна сторінка:   37. Алгоритми з повтореннями. Цикли в Pyth...



^