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

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

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

Віджет Combobox представляє список, що випадає, з якого користувач може вибрати один елемент. Фактично він представляє комбінацію віджетів Entry та Listbox.
Основні параметри конструктора Combobox:
values : список рядків для відображення у Combobox
background : фоновий колір
cursor : курсор покажчика миші під час наведення текстове поле
foreground : колір тексту
font : шрифт тексту
justify : встановлює вирівнювання тексту. Значення LEFT вирівнює текст по лівому краю, CENTER - по центру, RIGHT - по правому краю
show : задає маску для символів, що вводяться
state : стан елемента може приймати значення NORMAL (за замовчуванням) і DISABLED
textvariable : встановлює прив'язку до елемента StringVar
height : висота елемента
width : ширина елемента
Визначимо найпростіший список, що випадає:

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

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

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

За замовчуванням ми можемо ввести в текстове поле Combobox будь-яке значення, навіть те, якого немає в списку. Така поведінка не завжди може бути зручною. У цьому випадку ми можемо встановити для віджету стан тільки для читання, передавши параметр "state" значення "readonly":
Scale представляє повзунок зі шкалою, де можна вибрати одне з числових значень.
Серед параметрів Scale слід зазначити такі:
orient : напрямок віджету. Може приймати значення HORIZONTAL/ "horizontal"та VERTICAL/"vertical"
from_ : початкове значення шкали віджету, представляє тип float
to : кінцеве значення шкали віджету, представляє тип float
length : довжина віджету
command : функція, яка виконується при зміні поточного значення
value : поточне значення шкали віджету, представляє тип float
variable : змінна IntVar або DoubleVar, до якої прив'язано поточне значення віджету
Найпростіший Scale у горизонтальній та вертикальній орієнтації:


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


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


Віджет Spinbox дозволяє вибрати значення (частіше) з деякого списку.
Основні параметри Spinbox:
values : набір значень віджету у вигляді списку або кортежу
from_ : мінімальне значення (тип float)
to : максимальне значення (тип float)
increment : збільшення значення (тип float)
textvariable : визначає змінну StringVar, яка зберігає поточне значення віджету
command : вказує на функцію, що викликається при зміні значення віджету
wrap : при значенні True створює зациклений список, коли після мінімального значення йде максимальне.
background : фоновий колір
foreground : колір тексту
font : шрифт віджета
justify : вирівнювання тексту, приймає значення "left" (ліворуч), "right" (правим краєм) і "center" (центром)
width : ширина віджету
state : стан віджету
Найпростіший Spinbox:

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

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

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

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

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

Віджет Progressbar призначений для відображення ходу виконання будь-якого процесу. Основні параметри Progressbar:
value : поточне значення віджету (тип float)
maximum : максимальне значення (тип float)
variable : визначає змінну IntVar/DoublerVar, яка зберігає поточне значення віджету
mode : визначає режим, приймає значення "determinate" (кінцевий) та "indeterminate" (нескінченний)
orient : визначає орієнтацію віджету, приймає значення "vertical" (вертикальний) та "horizontal" (горизонтальний)
length : довжина віджету
Визначимо вертикальний та горизонтальний Progressbar:



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

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

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

Для створення ієрархічного меню 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) : додає в меню прапорець
Створимо найпростіше меню:

Для додавання пунктів меню об'єкта Menu викликається метод add_cascade() . Цей метод передаються параметри пункту меню, у разі вони представлені текстової міткою, встановлюваної через параметр label.
Але просто створити меню – ще недостатньо. Його треба встановити для поточного вікна за допомогою параметра menu метод config() . У результаті графічне вікно матиме наступне меню:

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

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

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


Відмінною рисою елементів меню є здатність реагувати на натискання користувача. Для цього у кожного елемента меню можна встановити параметр command , який встановлює посилання на функцію, що виконується при натисканні.
2
Програма має створює смугу, яка сама нескінченно бігає зліва направо. Жодних кнопок натискати не треба — вона запускається автоматично.
3
Програма додає у верхній лівий кут одну кнопку «Бувай», яка при натисканні миттєво закриває програму.
Рефлексія від 0 учнів
Сподобався:
Так: 0
Ні: 0
Зрозумілий:
Так: 0
Ні: 0
Потрібні роз'яснення:
Ні: 0
Так: 0
Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.