Багато програм на сьогоднішній день використовують графічний інтерфейс, який більш інтуїтивний і зручний для користувача, ніж консоль. І за допомогою мови програмування Python можна також створювати графічні програми. Для цього в Python за замовчуванням застосовується спеціальний тулкіт - набір компонентів, який називається tkinter. Тулкіт tkinter доступний у вигляді окремого вбудованого модуля, який містить усі необхідні графічні компоненти - кнопки, текстові поля тощо.
По суті Tkinter представляє інтерфейс у Python для графічної бібліотеки Tk (власне сама назва "Tkinter" є скороченням "Tk interface"). Спочатку ця бібліотека розроблялася для мови Tcl - її створив у 1988 році Джон Остерхаут (John Ousterhout), професор computer science з Берклі для створення графічних програм для своєї мови Tcl. Але згодом Tk була адаптована для широкого ряду динамічних мов, зокрема, для Ruby, Perl та природно для мови Python (1994 року). І на сьогоднішній день і бібліотека Tk, і сам тулкіт tkinter доступні для більшості операційних систем, у тому числі для Mac OS, Linux та Windows.
Переваги Tkinter:
Даний тулкіт за замовчуванням включений до стандартної бібліотеки мови Python у вигляді окремого модуля, тому не потрібно щось додатково встановлювати
Tkinter - кросплатформний, один і той же код працюватиме однаково на різних платформах (Mac OS, Linux та Windows)
Tkinter легко вивчати. Сам тулкіт, хоч і містить певний готовий код, віджети та графічні елементи, але при цьому досить лаконічний і простий.
Tk поширюється за BSD-ліцензією, тому бібліотека може бути використана як в опенсорсних проектах, так і в комерційних напрацюваннях.
Якщо потрібно або цікаво дізнатися версію бібліотеки Tk, яка буде використовуватися, в інтерпертаторі Python можна виконати таку інструкцію:
tkinter.Tcl().eval("info patchlevel")
У деяких ОС на базі Linux іноді при установці python не встановлюється пакет tkinter. У цьому випадку ми можемо доустановити thinkter командою
sudo apt-get install python3-tk
Перша програма
Створимо першу програму за допомогою Tkinter. Для цього визначимо наступний скрипт:
з tkinter import * root = Tk() # створюємо кореневий об'єкт - вікно root.title("Додаток на Tkinter") # встановлюємо заголовок вікна root.geometry("300x250") # встановлюємо розміри вікна label = Label(text="Hello METANIT.COM") # створюємо текстову мітку label.pack() # розміщуємо мітку у вікні root.mainloop()
Для створення графічного вікна застосовується конструктор Tk(), визначений у модулі tkinter. Створюване вікно присвоюється змінної root, і через цю змінну ми можемо керувати атрибутами вікна. Зокрема, за допомогою методу title() можна встановити заголовок вікна.
За допомогою методу geometry() - розмір вікна. Для встановлення розміру метод geometry()
передається рядок у форматі "Ширина x Висота". Якщо під час створення вікна програми метод geometry()
не викликається, то вікно займає той простір,
який потрібний для розміщення внутрішнього вмісту.
Створивши вікно, ми можемо розмістити у ньому інші графічні елементи. Ці елементи ще називаються віджетами. У цьому випадку ми розміщуємо у вікні текстову позначку. Для
це створюємо об'єкт класу Label, який зберігає певний текст. Потім для розміщення елемента label у вікні викликаємо метод pack()
Для відображення вікна треба викликати у нього метод mainloop(), який запускає цикл обробки подій вікна для взаємодії з користувачем.
У результаті під час запуску скрипта ми побачимо таке порожнє віконце:
На скріншоті вище визначено вікно, створюване в ОС Windows, на кожній конкретній системі окремі візуальні моменти, малювання графічних компонентів може дещо відрізнятися.