Similar presentations:
Презентація 9 клас Урок 48
1. Виконання навчальних проєктів
Інформатика 9Урок 48
за підручником
Морзе Н.В. та ін.
teach-inf.com.ua
Виконання
навчальних
проєктів
За навчальною програмою 2017 року
2. Об’єкти класу Listbox
Розділ 3§ 14
Об’єкти класу Listbox
Вибирати для виконання певних дій елементи списку
із заданою ознакою зручніше, якщо ці елементи
візуально представлені й доступні у графічному вікні.
Таку можливість надають віджети класу Listbox.
Об’єкт класу Listbox
дозволяє відображати
список елементів, з якого
користувач може обрати
один або декілька
пунктів.
© Вивчаємо інформатику
teach-inf.com.ua
3. Створення об’єктів класу Listbox
Розділ 3§ 14
Створення об’єктів класу Listbox
Для налаштування віджета Listbox можна задати в
його конструкторі такі спільні для багатьох віджетів
параметри, як:
bg
колір фону
fg
колір шрифту
font
настройки шрифту
width
ширина елемента (за замовчуванням ширина
встановлюється в 20 символів)
height
висота елемента (за замовчуванням висота
встановлюється в 10 рядків)
© Вивчаємо інформатику
teach-inf.com.ua
4. Створення об’єктів класу Listbox
Розділ 3§ 14
Створення об’єктів класу Listbox
Важливо задати значення параметра selectmode
selectmode
визначає, скільки елементів може бути
виділено
За замовчуванням у Listbox натисканням миші можна
вибрати тільки один елемент. Якщо установити:
selectmode = EXTENDED
© Вивчаємо інформатику
teach-inf.com.ua
можна вибрати декілька
елементів, утримуючи
натиснутою клавішу Ctrl
5. Створення об’єктів класу Listbox
Розділ 3§ 14
Створення об’єктів класу Listbox
При
створенні
віджета
класу
дотримуватися такої послідовності дій:
1) створити об’єкт класу
Listbox;
2) заповнити список
Listbox елементами;
3) розмістити віджет у
вікні.
© Вивчаємо інформатику
teach-inf.com.ua
Listbox
слід
6. Створення об’єктів класу Listbox
Розділ 3§ 14
Створення об’єктів класу Listbox
ПРИКЛАД 1. Створити віджет класу Listbox.
Програмний код
from tkinter import*
root = Tk()
root.title('Віджет класу Listbox')
lbox_mova_progr = Listbox(width = 40,
selectmode = EXTENDED)
lbox_mova_progr.pack()
# Віджет розміщується у вікні
root.mainloop()
© Вивчаємо інформатику
teach-inf.com.ua
7. Створення об’єктів класу Listbox
Розділ 3§ 14
Створення об’єктів класу Listbox
Для наповнення списку Listbox елементами слід у
циклі for пройти по всіх елементах списку mova_progr і
додати кожний елемент до списку Listbox за допомогою
методу insert():
<назва об’єкта>.insert(index, element)
Як перший аргумент методу insert передається індекс
вставлення елемента.
Якщо ми хочемо послідовно додавати елементи,
замість індекса можна використовувати
значення END.
© Вивчаємо інформатику
teach-inf.com.ua
8. Створення об’єктів класу Listbox
Розділ 3§ 14
Створення об’єктів класу Listbox
ПРИКЛАД 2. Відобразити у віджеті класу
список мов програмування.
Listbox
from tkinter import*
root = Tk()
root.title('Мови програмування')
lbox_mova_progr = Listbox(width = 40, selectmode = EXTENDED)
mova_progr = ["Python", "JavaScript", "C#", "Java", "C/C++",
"PHP", "Visual Basic.NET", "Ruby"]
# Заповнюється за допомогою методу insert()
for mova in mova_progr:
lbox_mova_progr.insert(END, mova)
lbox_mova_progr.pack()
root.mainloop()
© Вивчаємо інформатику
teach-inf.com.ua
9. Основні методи Listbox
Розділ 3§ 14
Основні методи Listbox
Крім методу insert(), клас
Listbox має інші корисні
методи для керування
поведінкою об’єктів та
їхнім вмістом.
Розглянемо деякі з цих
методів. Метод:
<назва об’єкта>.curselection()
Повертає набір індексів елементів, що виділені.
© Вивчаємо інформатику
teach-inf.com.ua
10. Основні методи Listbox
Розділ 3§ 14
Основні методи Listbox
ПРИКЛАД 3. Застосувати метод
curselection() до списку віджета
lbox_mova_progr.
Метод викликається в
обробнику події для кнопки
Застосувати метод
curselection().
def btn_click():
print (lbox_mova_progr.curselection())
Результат
© Вивчаємо інформатику
1, 3, 6
teach-inf.com.ua
11. Основні методи Listbox
Розділ 3§ 14
Основні методи Listbox
Метод
<назва об’єкта>.delete(n)
Видаляє
зі
списку
елемент з індексом n.
Listbox
ПРИКЛАД 4. Видалити елемент
з індексом 6.
lbox_mova_progr.delete(6)
© Вивчаємо інформатику
teach-inf.com.ua
12. Основні методи Listbox
Розділ 3§ 14
Основні методи Listbox
Метод
<назва об’єкта>.get(n)
Повертає
індексом n.
текст
елемента
з
ПРИКЛАД 5. Вивести в консоль
елемент
списку
Listbox
з
індексом 3.
print(lbox_mova_progr.get(3))
# Буде виведено Java
© Вивчаємо інформатику
teach-inf.com.ua
13. Основні методи Listbox
Розділ 3§ 14
Основні методи Listbox
ПРИКЛАД 6. Створити список elem
додані до списку Listbox.
з елементів, що
elem = list(lbox_mova_progr.get(0, END))
Результат
['Python', 'JavaScript', 'C#', 'Java',
'C/C++', 'PHP', 'Visual Basic.NET',
'Ruby']
© Вивчаємо інформатику
teach-inf.com.ua
14. Основні методи Listbox
Розділ 3§ 14
Основні методи Listbox
Метод
<назва об’єкта>.size()
Повертає число
списку Listbox.
елементів
ПРИКЛАД 7. Визначити
кількість елементів у списку
lbox_mova_progr.
k = lbox_mova_progr.size()
print(k) # Буде виведено 8
© Вивчаємо інформатику
teach-inf.com.ua
у
15. Застосування методів класу Listbox
Розділ 3§ 14
Застосування методів класу Listbox
Додавати рядки до списку Listbox можна під час
виконання програми, вводячи значення з клавіатури.
ПРИКЛАД 8. Запрограмувати
додавання рядків до списку віджета
lbox класу Listbox, уводячи по черзі
значення до поля віджета
entry_add класу Entry і натискаючи
кнопку badd.
© Вивчаємо інформатику
teach-inf.com.ua
16. Застосування методів класу Listbox
Розділ 3§ 14
Застосування методів класу Listbox
Програмний
код до
прикладу 8
© Вивчаємо інформатику
teach-inf.com.ua
17. Застосування методів класу Listbox
Розділ 3§ 14
Застосування методів класу Listbox
ПРИКЛАД 9. Додати до коду з прикладу 8 можливість
зберігати список віджета lbox у текстовому файлі. Для
цього слід створити кнопку Зберегти у файл і описати
обробник події для кнопки.
Метод join() перетворює кортеж
рядків, який повернув метод get(),
в один рядок через роздільник '\
def saveList():
f = open('list.txt', 'w')
f.writelines("\n".join(lbox.get(0, END)))
f.close()
bsave = Button(root, text = "Зберегти у файл", command =
saveList)
bsave.grid(row = 4, column = 1)
© Вивчаємо інформатику
teach-inf.com.ua
18. Застосування методів класу Listbox
Розділ 3§ 14
Застосування методів класу Listbox
Вибирати для виконання певних дій елементи списку
із заданою ознакою.
© Вивчаємо інформатику
teach-inf.com.ua
19. Застосування методів класу Listbox
Розділ 3§ 14
Застосування методів класу Listbox
ПРИКЛАД 10. Обчислити суму чисел, які знаходяться в
списку lbox, що створений у прикладі 8.
До коду основної програми слід додати кнопку
Знайти суму й описати обробник події для кнопки:
def bsum_cl():
elem = list(map(int, lbox.get(0, END)))
s = sum(elem)
lab2.config(text = 'Сума елементів '+str(s))
<…>
bsum = Button(text = "Знайти суму",
command = bsum_cl)
bsum.grid(row = 4, column = 1)
© Вивчаємо інформатику
teach-inf.com.ua
20. Застосування методів класу Listbox
Розділ 3§ 14
Застосування методів класу Listbox
ПРИКЛАД 11. Обчислити суму чисел, які знаходяться у
виділених рядках списку lbox, що створений у
прикладі 8.
def bsum_cl():
select = list(lbox.curselection())
# Список індексів виділених елементів
s=0
for i in select:
s = s+int(lbox.get(i))
# Додавання елементів зі списку lbox,
# індекси яких знаходяться в списку select
lab2.config(text = 'Сума виділених '+str(s))
© Вивчаємо інформатику
teach-inf.com.ua
21. Застосування методів класу Listbox
Розділ 3§ 14
Застосування методів класу Listbox
Отже, віджет
Listbox дозволяє
унаочнити роботу
зі списками,
полегшити
опрацювання
значень у списку,
вибір елементів
тощо.
© Вивчаємо інформатику
teach-inf.com.ua
22. Питання для самоперевірки
Розділ 3§ 14
Питання для самоперевірки
1. Виведіть у консоль число елементів у списку lab.
2. Виведіть у консоль індекс виділеного елемента
списку lab.
3. Виведіть у консоль
текст 3-го елемента
в списку lab.
4. Видаліть 4-й
елемент списку lab.
© Вивчаємо інформатику
teach-inf.com.ua
23. Працюємо за комп’ютером
Розділ 3§ 14
Працюємо за комп’ютером
Виконати завдання з файлу:
Практичне завдання_урок 48
© Вивчаємо інформатику
teach-inf.com.ua
24. Дякую за увагу!
Інформатика 9Дякую за увагу!
Урок 48
за підручником
Морзе Н.В. та ін.
teach-inf.com.ua
За навчальною програмою 2017 року