Сьогодні відбувся
Вебінар:
«
Інтеграція знань, практики та інноваційних технологій у професійному розвитку педагогів закладів освіти
»
Взяти участь Всі події
Урок:

Основи Tkinter 6

Вміст уроку:
1
2
3

Урок не містить жодного завдання. Додайте завдання.

Щоб додати завдання, оберіть категорію завдання на панелі запитань.

1

Scrollbar та прокручування віджету

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

Основні параметри конструктора Scrollbar:

  • orient : напрямок прокручування. Може мати такі значення: vertical(вертикальне прокручування) та horizontal(горизонтальне прокручування).

  • command : команда прокручування

Scrollbar не використовується сам по собі, він застосовується лише для віджету, що прокручується. Не всі віджети в tkinter є прокручуються. Для прокручування по вертикалі віджет, що прокручується, має yview , а для прокручування по горизонталі - метод xview (віджет може мати тільки один з цих методів). Прикладом віджету, що прокручується, може служити Listbox або Text . Цей метод використовується як команда для Scrollbar:

0901z7xi-5dcf-940x119.png

Але віджет, що прокручується, повинен також взаємодіяти зі Scrollbar. Для цього у виджету, що прокручується, є параметри yscrollcommand і/або xscrollcommand , які повинні приймати виклик методу set об'єкта Scrollbar:

0901z7xn-31f5-940x534.png

У конструкторі scrollbar асоціюється з функцією, яку треба виконувати під час прокручування. В даному випадку це метод yview елемента listbox. У результаті ми зможемо прокручувати елементи по вертикалі:

І оскільки необхідно прокручувати listbox по вертикалі, то в нього задається параметрlistbox["yscrollcommand"]=scrollbar.set

0901z7xq-007e-738x530.png

Combobox

Віджет Combobox представляє список, що випадає, з якого користувач може вибрати один елемент. Фактично він представляє комбінацію віджетів Entry та Listbox.

Основні параметри конструктора Combobox:

  • values ​​: список рядків для відображення у Combobox

  • background : фоновий колір

  • cursor : курсор покажчика миші під час наведення текстове поле

  • foreground : колір тексту

  • font : шрифт тексту

  • justify : встановлює вирівнювання тексту. Значення LEFT вирівнює текст по лівому краю, CENTER - по центру, RIGHT - по правому краю

  • show : задає маску для символів, що вводяться

  • state : стан елемента може приймати значення NORMAL (за замовчуванням) і DISABLED

  • textvariable : встановлює прив'язку до елемента StringVar

  • height : висота елемента

  • width : ширина елемента

Визначимо найпростіший список, що випадає:

0901z7xw-13db-940x481.png

ут для елемента combobox як джерело значень встановлюється список languages:

0901z7y7-6c84-684x626.png

За допомогою параметра textvariableми можемо встановити прив'язку до обраного в Combobox значення:

0901z7yd-b15b-940x631.png

Тут вибраний Combobox елемент прив'язаний до змінної languages_var. За промовчанням вибрано перший елемент списку languages. Для відстеження зміни вибору визначено позначку Label, яка відображає вибраний елемент:

0901z7yl-5ba6-670x610.png

За замовчуванням ми можемо ввести в текстове поле Combobox будь-яке значення, навіть те, якого немає в списку. Така поведінка не завжди може бути зручною. У цьому випадку ми можемо встановити для віджету стан тільки для читання, передавши параметр "state" значення "readonly":

Scale

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

Серед параметрів Scale слід зазначити такі:

  • orient : напрямок віджету. Може приймати значення HORIZONTAL/ "horizontal"та VERTICAL/"vertical"

  • from_ : початкове значення шкали віджету, представляє тип float

  • to : кінцеве значення шкали віджету, представляє тип float

  • length : довжина віджету

  • command : функція, яка виконується при зміні поточного значення

  • value : поточне значення шкали віджету, представляє тип float

  • variable : змінна IntVar або DoubleVar, до якої прив'язано поточне значення віджету

Найпростіший Scale у горизонтальній та вертикальній орієнтації:

0901z7z9-9484-940x348.png

0901z7zb-5459-672x744.png

Прив'язка до змінної

0901z7zg-5fa1-940x351.png

0901z7zm-83e9-940x592.png

Обробка зміни значення

Параметр commandдозволяє встановити функцію, яка виконуватиметься при зміні поточного значення Scale. Як параметр у цю функцію передається нове значення:

0901z7zq-6374-940x479.png

0901z7zs-b74c-940x630.png

Spinbox

Віджет Spinbox дозволяє вибрати значення (частіше) з деякого списку.

Основні параметри Spinbox:

  • values ​​: набір значень віджету у вигляді списку або кортежу

  • from_ : мінімальне значення (тип float)

  • to : максимальне значення (тип float)

  • increment : збільшення значення (тип float)

  • textvariable : визначає змінну StringVar, яка зберігає поточне значення віджету

  • command : вказує на функцію, що викликається при зміні значення віджету

  • wrap : при значенні True створює зациклений список, коли після мінімального значення йде максимальне.

  • background : фоновий колір

  • foreground : колір тексту

  • font : шрифт віджета

  • justify : вирівнювання тексту, приймає значення "left" (ліворуч), "right" (правим краєм) і "center" (центром)

  • width : ширина віджету

  • state : стан віджету

Найпростіший Spinbox:

0901z807-deb2-940x500.png

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

0901z80a-9cf5-682x500.png

За замовчуванням збільшення йде на одиницю, але за допомогою параметра increment можна встановити інше значення, наприклад, збільшення на 2:

0901z80d-1c73-916x86.png

Також за умовчанням ми можемо, не використовуючи стрілочки, ввести в текстове поле віджету якесь значення, навіть те, що не входить у діапазон значень. Якщо нам потрібно заборонити введення значень у текстове поле та залишити доступними для вибору значень лише стрілочки, то для цього можна встановити для параметра stateзначення readonly:

0901z80l-806e-940x59.png

За допомогою параметра textvariable можна прив'язати значення Spinbox до змінної StringVar:

0901z80q-6f0d-940x654.png

Встановлення набору значень

Цей віджет необов'язково має представляти список із числових значень. Насправді це може бути будь-який набір значень у вигляді списку або кортежу, який можна встановити за допомогою параметра values ​​:

0901z813-35d9-940x979.png

Progressbar

Віджет Progressbar призначений для відображення ходу виконання будь-якого процесу. Основні параметри Progressbar:

  • value : поточне значення віджету (тип float)

  • maximum : максимальне значення (тип float)

  • variable : визначає змінну IntVar/DoublerVar, яка зберігає поточне значення віджету

  • mode : визначає режим, приймає значення "determinate" (кінцевий) та "indeterminate" (нескінченний)

  • orient : визначає орієнтацію віджету, приймає значення "vertical" (вертикальний) та "horizontal" (горизонтальний)

  • length : довжина віджету

Визначимо вертикальний та горизонтальний Progressbar:

0901z82e-a657-940x655.png

0901z82f-2548-940x476.png

0901z82h-be1e-724x526.png

Методи Progressbar

Деякі важливі методи віджету:

  • start([interval]): запускає рух індикатора через певні інтервали часу. Щоразу, коли пройде черговий інтервал, індикатор зміщується однією поділ вперед. За умовчанням інтервал дорівнює 50 мілісекунд

  • step([delta]): збільшує значення індикатора на значення параметра delta (за замовчуванням дорівнює 1.0)

  • stop(): зупиняє переміщення індикатора

Застосуємо методи:

0901z82m-d0d4-940x776.png

В даному випадку після натискання на кнопку start_btn запускаємо переміщення індикатора - через кожні 1000 мілісекунд (1 секунду) індикатор переміщається на один поділ вперед. Після натискання на кнопку stop_btn зупиняємо рух індикатора.

0901z82q-118e-676x486.png

Режим прогресу

Параметр mode відповідає за встановлення режиму прогрессбару і може набувати двох значень:

  • "indeterminate": прогрес бар показує індикатор, який переміщається без зупинки між двома краями віджету, тобто фактично нескінченно продовжує переміщення. Цей режим підходить, коли складно розрахувати, наскільки повинен переміщатися індикатор при відображенні ходу деякого завдання

  • "determinate": індикатор прогресу проходить від початку до кінця і потім завершує переміщення. Значення за промовчанням. Підходить для відображення процесів, де можна підрахувати переміщення індикатора. Наприклад, копіюється 100 файлів, і якщо параметр maximumдорівнює 100, при копіюванні одного файлу переміщаємо індикатор на один поділ вперед.

Застосування режиму "determinate" насправді вже розглядалося вище, оскільки це режим за промовчанням. Подивимося приклад застосування режиму " indeterminate " :

0901z82w-71ca-940x634.png

Меню

Для створення ієрархічного меню tkinter застосовується віджет Menu . Основні параметри Menu:

  • activebackground : колір активного пункту меню

  • activeborderwidth : товщина межі активного пункту меню

  • activeforeground : колір тексту активного пункту меню

  • background/bg : фоновий колір

  • bd : товщина кордону

  • cursor : курсор покажчика миші при наведенні меню

  • disabledforeground : колір, коли меню перебуває у стані DISABLED

  • font : шрифт тексту

  • foreground / fg : колір тексту

  • tearoff : меню може бути від'єднане від графічного вікна. Зокрема, при створенні підменю а скріншоті можна побачити лінію, що переривається, у верху підменю, за яку його можна від'єднати. Однак при значенні tearoff=0підменю неможливо від'єднати.

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

  • add_command(options) : додає елемент меню через опцію options

  • add_cascade(options) : додає елемент меню, який у свою чергу може представляти підменю

  • add_separator() : додає лінію-розмежувач

  • add_radiobutton(options) : додає в меню перемикач

  • add_checkbutton(options) : додає в меню прапорець

Створимо найпростіше меню:

0901z83a-fcb0-940x253.png

Для додавання пунктів меню об'єкта Menu викликається метод add_cascade() . Цей метод передаються параметри пункту меню, у разі вони представлені текстової міткою, встановлюваної через параметр label.

Але просто створити меню – ще недостатньо. Його треба встановити для поточного вікна за допомогою параметра menu метод config() . У результаті графічне вікно матиме наступне меню:

0901z83b-fe93-702x552.png

Тепер додамо підменю:

0901z83h-4574-940x765.png

Але зверніть увагу на пунктирну лінію в підменю, яка зовсім не потрібна і звідки з'являється незрозуміло. Щоб позбавитися цієї лінії, потрібно для потрібного пункту меню встановити параметр tearoff=0:

0901z83l-6b6d-608x86.png

Однак так як підпунктів меню може бути багато, щоб для кожного не прописувати цей параметр, то простіше відключити все це глобально за допомогою наступного рядка коду

0901z83u-ac7c-728x72.png

0901z842-2078-940x1239.png

Взаємодія з меню

Відмінною рисою елементів меню є здатність реагувати на натискання користувача. Для цього у кожного елемента меню можна встановити параметр command , який встановлює посилання на функцію, що виконується при натисканні.
0901z84n-2fe3-940x1209.png

2

12 з 24 балів

Програма має створює смугу, яка сама нескінченно бігає зліва направо. Жодних кнопок натискати не треба — вона запускається автоматично.

3

12 з 24 балів

Програма додає у верхній лівий кут одну кнопку «Бувай», яка при натисканні миттєво закриває програму.

Рефлексія від 0 учнів

Сподобався:

0

Так: 0

Ні: 0

Зрозумілий:

0

Так: 0

Ні: 0

Потрібні роз'яснення:

0

Ні: 0

Так: 0

Рекомендуємо

§ 10. Графічні методи модуля tkinter

§ 10. Графічні методи модуля tkinter

481

Аватар профіля Киреєва Оксана Анатоліївна
Інформатика
7 клас

50 грн

Основи колористики.

Основи колористики.

165

Аватар профіля Кучерява Наталія Геннадіївна
Технології
10—12 клас та I—III курси

83 грн

74 грн

Тематична робота з інформатики "Основи інформаційної безпеки"

Тематична робота з інформатики "Основи інформаційної безпеки"

164

Аватар профіля Губчик Вероніка Григорівна
Інформатика
9 клас

25 грн

Основи статистичного аналізу даних. Ряди даних.

Основи статистичного аналізу даних. Ряди даних.

92

Аватар профіля Бєлова Тетяна Іванівна
Інформатика
10 клас

35 грн

Урок 2: Основи HTML — Структура вебсторінки

Урок 2: Основи HTML — Структура вебсторінки

64

Аватар профіля Нікішина Катерина Іванівна
Інформатика
7—12 клас, I—VI курси, дорослі та змішані

41 грн

Основи теорії дизайну. Стиль та композиція в дизайні

Основи теорії дизайну. Стиль та композиція в дизайні

446

Аватар профіля Куленко Марія Миколаївна
Інформатика
11 клас

20 грн

Схожі уроки

Впорядкування, пошук і фільтрування даних.

Впорядкування, пошук і фільтрування даних.

1276

Аватар профіля Вожга Ірина Леонідівна
Інформатика
9 клас

Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.

Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.

1090

Аватар профіля Савка-Ржематорська Оксана Василівна
Інформатика
9 клас

Цикли з передумовою у вкладених циклах

Цикли з передумовою у вкладених циклах

1335

Аватар профіля Вожга Ірина Леонідівна
Інформатика
6 клас

Налаштування часових параметрів аудіо- та відеоряду.

Налаштування часових параметрів аудіо- та відеоряду.

489

Аватар профіля Солодовнікова Катерина Олексіївна
Інформатика
8 клас

Елемент керування «кнопка». Поняття об’єкту та його властивостей і методів (на прикладі елементів екранної форми). Властивості і методи елементів керування.

Елемент керування «кнопка». Поняття об’єкту та його властивостей і методів (на прикладі елементів екранної форми). Властивості і методи елементів керування.

642

Аватар профіля Пилипенко Олена Володимирівна
Інформатика
8 клас

Елемент керування кнопка

Елемент керування кнопка

267

Аватар профіля Пилипенко Олена Володимирівна
Інформатика
8 клас