GUI Библиотека Tkinter
Tkinter – это пакет для Python, предназначенный для работы с библиотекой Tk. Библиотека Tk содержит компоненты графического интерфейса пользователя (graphical user interface – GUI), написанные на языке программирования Tcl. Tkinter реализован как оболочка Python для Tcl интерпретатора, встроенного в интерпретатор Python. Существует и несколько других популярных графических инструментов для Python. Наиболее популярными являются wxPython, PyQt и PyGTK.
GUI (графический интерфейс )
Под графическим интерфейсом пользователя (GUI) подразумеваются все те окна, кнопки, текстовые поля для ввода, скроллеры, списки, радиокнопки, флажки и др., которые вы видите на экране, открывая то или иное приложение. Через них вы взаимодействуете с программой и управляете ею. Все эти элементы интерфейса вместе будем называть виджетами (widgets).
Как написать GUI -программу?
- Создать главное окно.
- Создать виджеты и выполнить конфигурацию их свойств (опций).
- Определить события, то есть то, на что будет реагировать программа.
- Определить обработчики событий, то есть то, как будет реагировать программа.
- Расположить виджеты в главном окне.
- Запустить цикл обработки событий.
Главное окно
Tkinter импортируется стандартно для модуля Python from tkinter import *. Объект окна верхнего уровня создается от класса Tk модуля tkinter. Переменную, связываемую с объектом, часто называют root (корень):
root = Tk()
В этом окне располагаются все остальные виджеты.
Первая программа с GUI
from tkinter import *
root=Tk()
root.mainloop()
Последняя строка вызывает функцию mainloop. Эта функция вызывает бесконечный цикл окна, поэтому окно будет ждать любого взаимодействия с пользователем, пока не будет закрыто.
Свойства окна
root.title("Моя программа") # заголовок окна
root.geometry('500x150') # размеры окна
root.geometry('600x400+200+100') # ширина, высота окна и его смещение от верхней левой точки экрана
root.update_idletasks() # данный метод перезагружает данные об окне после размещения виджетов
Методы winfo_screenwidth() и winfo_screenheight()
Чтобы окно появлялось в центре экрана. Рассмотрим, как поместить окно в центр, если размер окна известен:
w = root.winfo_screenwidth() # ширина экрана
h = root.winfo_screenheight() # высота экрана
w = w//2 -200 # середина экрана - половина ширины окна
h = h//2 - 100 # середина экрана - половина высоты окна
root.geometry('400x200+{}+{}'.format(w, h))