Інтерфейс користувача мовою Python

Багато програм на сьогоднішній день використовують графічний інтерфейс, який більш інтуїтивний і зручний для користувача, ніж консоль. І за допомогою мови програмування 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:

Якщо потрібно або цікаво дізнатися версію бібліотеки 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(), який запускає цикл обробки подій вікна для взаємодії з користувачем.

У результаті під час запуску скрипта ми побачимо таке порожнє віконце:

Графічна програма на Tkinter та Python

На скріншоті вище визначено вікно, створюване в ОС Windows, на кожній конкретній системі окремі візуальні моменти, малювання графічних компонентів може дещо відрізнятися.