Інформація про новину
  • Переглядів: 62
  • Дата: 6-10-2021, 18:40
6-10-2021, 18:40

56. Використання перемикачів та прапорців в Python

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





Попередня сторінка:  55. Використання вікон повідомлень в Pyth...
Наступна сторінка:   57. Використання списків

56.1.

ВИКОРИСТАННЯ ПЕРЕМИКАЧІВ

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

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

Перемикачі створюють за допомогою конструктора Radiobutton. Ці елементи керування можуть перебувати в одному із двох станів: увімкнено або вимкнено (рис. 56.1). Загальний вигляд коду для створення перемикача буде таким:

Для виведення перемикача у графічному вікні, як і для інших елементів керування, використовують методи pack або place.

Використання перемикачів розглянемо, виконавши вправу.

ВПРАВА 56.1

Завдання. Створити програму, в якій додати перемикачі з назвами трьох найбільших міст України. Після вибору міста у верхньому написі має з’являтися назва міста, а у нижньому — інформація про рік його заснування, кількість населення та площу. Інформацію про міста можна знайти в мережі Інтернет або завантажити з файла до даного уроку.

1. Створіть графічне вікно програми, що містить заголовок Найбільші міста України та має розміри 400x200.

2. Додайте команди розташування у вікні перемикачів:

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

3. Додайте команду main 1оор().

4. Запустіть програму. В результаті у вікні мають з’явитися перемикачі, які знаходяться у положенні увімкнено. Спробуйте змінити стан перемикача.

5. Аби перемикачі реагували на дію користувача, додайте команди, виділені чорним:

У даному коді перша команда створює цілочисельну змінну, з якою будуть пов’язані перемикачі. У ній функція lntVar() визначає, що змінна буде цілого типу. Властивість variable пов’язує перемикач зі створеною змінною var. А властивість value встановлює значення змінної var у залежності від вибраного користувачем перемикача. Отже, для нашого випадку це буде значення 1,2 або 3.

6. Запустіть програму ще раз. Тепер усі перемикачі мають бути вимкнені. Оберіть послідовно кожний із них.

7. Додайте до програми команди створення написів, відповідно до зразка (рис. 56.2). В обох написах створіть рельєф з допомогою властивості relief=SUNKEN. Для другого напису додайте білий колір фону та вирівнювання по лівому краю.

Створимо обробник події натискання на перемикач. Оскільки усі перемикачі прив’язані до однієї змінної, фактично вони утворюють групу перемикачів. Отже, для групи перемикачів має бути створена одна функція, що є обробником події натискання на перемикач із групи.

8. Для обробника події введіть такий код:

Як бачимо, в даному коді є три умови, що перевіряють значення, одержане змінною var з використанням методу get. Якщо змінна дорівнює 1, виводиться інформація про Київ, якщо 2 — про Харків, якщо 3 — про Одесу. Зверніть увагу, що тут коди розташовані у два рядки, оскільки в один рядок вони не поміщаються. В редакторі коду ці команди слід розташовувати в одному рядку.

9. Для виконання обробника події додайте команди його виклику command=btn_click для першого перемикача.

10. Аналогічно додайте цю команду і для інших перемикачів.

11. Запустіть програму та перевірте правильність її виконання.

Отже, для створення групи із 3-х перемикачів можна скористатися такою загальною конструкцією:

Спочатку слід оголосити цілочисельну змінну, з якою будуть пов’язані усі перемикачі, далі створити перемикач з допомогою конструктора Radiobutton, у якому вказати властивість тексту text, властивість variable, що пов’язує перемикач зі змінною, та властивість value, що визначає значення змінної у разі вибору даного перемикача користувачем. У наступному рядку — метод розташування перемикача у графічному вікні. Аналогічно створюються й інші перемикачі групи.

56.2.

ВИКОРИСТАННЯ ПРАПОРЦІВ

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

увімкнено та вимкнено (рис. 56.3). Для створення прапорця використовують команду виду:

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

ВПРАВА 56.2

Завдання. Створити програму формування меню, в якому користувач може обрати бажані страви, клацаючи прапорці біля їхніх назв (рис. 56.4). Після натискання на кнопку Очистити усі прапорці стають порожніми (вимкненими). Після натискання кнопки Сформувати замовлення з’являється вікно повідомлення з переліком обраних страв, і прапорці стають неактивними. При натисканні на кнопку Редагувати замовлення прапорці знову стають активними.

Створення графічного вікна

1. Уведіть команди створення графічного вікна, що має заголовок Меню та розміри 250x260.

Створення прапорців

2. Додайте команди створення прапорців.

З програмного коду видно, що створення кожного прапорця складається з двох команд. У першій команді змінній присвоюємо конструктор Checkbutton із властивістю text. Друга команда містить метод розташування прапорця у вікні.

3. Запустіть програму на виконання. В результаті у вікні буде відображено прапорці, в яких можна встановлювати бажане положення.

Створення кнопок

4. Уведіть команди розташування у вікні кнопок Очистити, Сформувати замовлення та Редагувати замовлення відповідно до зразка (рис. 56.4). Надайте їм імена clear, create та edit відповідно.

Створення обробника кнопки Очистити

5. Створіть обробник події кнопки Очистити:

Для очищення прапорця використовують метод deselect. В даному коді цей метод застосовано до кожного прапорця.

6. У конструкторі кнопки Очистити додайте команду виклику обробника події.

7. Запустіть програму. Оберіть деякі прапорці та натисніть кнопку Очистити. В результаті усі прапорці буде прибрано.

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

Аби програма могла запам’ятати положення прапорця, встановлене користувачем, прапорці, як і перемикачі, пов’язують зі змінними. Проте на відміну від перемикачів, де уся група була пов’язана з однією змінною, кожний прапорець пов’язують зі своєю змінною, яка може приймати значення 1, якщо прапорець увімкнено, і значення 0, при вимкненому прапорцеві.

8. У тілі програми створіть змінні для прапорців. Для цього введіть такий код:

9. Додайте до кодів прапорців властивості, що пов’яжуть їх зі створеними змінними. Для цього, як і для перемикачів, використовують властивість variable.

10. Уведіть код обробника події кнопки Сформувати замовлення.

Тут у першому рядку створено порожню змінну txt, у яку будуть дописуватися обрані з допомогою прапорців страви. У першому умовному операторі за допомогою методу get перевіряється значення змінної, що пов’язана з першим прапорцем. Якщо вона дорівнює 1 (тобто прапорець є увімкненим), то до змінної txt дописується назва першої страви і з допомогою символів \п здійснюється перехід на наступний рядок. Аналогічно сформовано умовні оператори і для інших прапорців.

В останньому рядку розташовано команду виведення інформаційного вікна повідомлення, де showinfo — тип інформаційного вікна, Замовлення — заголовок, txt — змінна, в якій сформовано повідомлення, яке необхідно вивести.

11. Для виведення вікна повідомлення імпортуйте вбудований до tkinter модуль messagebox:

12. Для кнопки Сформувати замовлення додайте команду виклику обробника події.

13. Запустіть програму на виконання, оберіть страви. Натисніть кнопку Сформувати замовлення. В результаті має з’явитися вікно повідомлення з обраними стравами.

Крім виведення вікна повідомлення, до даного обробника події необхідно додати команди, аби прапорці ставали неактивними. За значення активності у прапорців відповідає властивість state. За умовчанням це значення дорівнює NORMAL, тобто елемент є активним; якщо значення дорівнює DISABLED — елемент буде неактивним. Оскільки в нашому випадку прапорці мають стати неактивними, то для цієї властивості необхідно надати значення DISABLED.

14. Додайте до обробника події такий код:

Подумайте, куди необхідно вставити цей код, аби прапорці ставали неактивними одночасно з появою вікна повідомлення.

15. Запустіть програму, оберіть деякі страви та натисніть кнопку Сформувати замовлення. В результаті має з’явитися вікно повідомлення з обраними стравами і прапорці мають стати неактивними.

Створення обробника події кнопки Редагувати замовлення

При натисненні кнопки Редагувати замовлення усі прапорці знову мають стати активними. Неважко здогадатися, що для цього необхідно повернути в початкове положення властивість state для прапорців.

16. Уведіть код обробника події кнопки Редагувати замовлення:

17. Для кнопки Редагувати замовлення додайте команду виклику обробника події.

18. Запустіть програму та перевірте правильність роботи усіх кнопок.

Отже, для створення групи із 3-х прапорців можна скористатися

такою загальною конструкцією: 1 2 3 4

Контрольні запитання та завдання

1. Для чого використовують перемикачі та прапорці?

2. Які конструктори використовують для створення перемикачів та прапорців?

3. Як створити групу перемикачів; прапорців?

4. Які властивості мають перемикачі та прапорці?

Питання для роздумів

1*. Які відмінності у використанні перемикачів та прапорців? 2*. Наведіть приклади використання перемикачів (прапорців).

Завдання для досліджень

1*. Наведіть приклади використання перемикачів (прапорців) у текстовому редакторі Word.

2*. Дослідіть призначення властивості indicator для прапорців.

 

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

 



Попередня сторінка:  55. Використання вікон повідомлень в Pyth...
Наступна сторінка:   57. Використання списків



^