Ознакомление с Tkinter [Урок №1]

автор

В этой части обучения Tkinter мы познакомим Вас с инструментом Tkinter и создадим первые программы. Целью этого руководства является ознакомление с базой инструментария Tkinter. Изображения, использованные в данном уроке, можно скачать здесь. Я использовал несколько иконок из набора Tango от Gnome project.

Tkinter

Tkinter – это графическая библиотека на основе Tk, которая входит в стандартную библиотеку Python. Tk является библиотекой базовых элементов графического интерфейса для языка Tcl. Tkinter реализован как оболочка Python для Tcl интерпретатора, встроенного в интерпретатор Python. Существует и несколько других популярных графических инструментов для Python. Наиболее популярными являются wxPython, PyQt и PyGTK.

Python

Python – это высокоуровневый, динамичный, объектно-ориентированный язык программирования. Он ориентирован на повышение производительности программиста и читаемости кода. Разработчиком кода является Гвидо ван Россум. Впервые язык увидел свет в 1991 году. Для создания Python автор вдохновлялся такими языками программирования как ABC, Haskell, Java, Lisp, Icon и Perl. Python является высокоуровневым, кроссплатформенным, но в то же время минималистичным языком. Одним из его основных преимуществ является отсутствие скобок и точек с запятой. Вместо этого Python использует отступы. Сегодня существует две основные ветви языка: Python 2.x и Python 3.x.

Стоит отметить, что Python 3.x нарушает обратную совместимость с предыдущими версиями языка. Его разработали для того, чтобы исправить ряд недостатков конструкции уже существующего языка, упростить и очистить его от ненужных деталей. Последней версией Python 2.x является 2.7.10, а Python 3.x – 3.5.0. Данный учебник написан на Python 2.x, равно как и большая часть кода.

Для перехода программного обеспечения и самих разработчиков на Python 3.x потребуется какое-то время. Сегодня Python поддерживается большим количеством добровольцев со всего мира. Напомню, что язык имеет открытый исходный код.
Python – это идеальный язык для тех людей, которые хотят научиться программировать.

Язык программирования Python поддерживает несколько стилей программирования. Он не принуждает разработчика придерживаться определенной парадигмы. Python поддерживает объектно-ориентированное и процедурное программирование. Существует и ограниченная поддержка функционального программирования.
Официальный сайт языка: python.org

Простой пример

В нашем первом примере мы покажем стандартное окно на экране.

Несмотря на то, что код небольшой, окно приложения может сделать много интересных вещей. Оно может изменяться, сворачиваться и разворачиваться. Вся сложность, которая была связана с этими функциями, полностью скрыта от разработчика.

Здесь мы импортируем классы Tk и frame. Первый класс используется для создания корневого окна. Второй играет роль контейнера для других виджетов.

Класс в нашем примере унаследован от виджета контейнера Frame. Используя конструкторский метод __init__() мы можем обращаться к конструктору нашего унаследованного класса. Параметр background определяет цвет виджета Frame.

Мы сохраняем ссылку на родительский виджет. В нашем случае родительским виджетом выступает корневое окно Tk.

Мы делегируем создание пользовательского интерфейса методу initUI()

Мы задаем заголовок окну при помощи метода title()

Метод pack() является одним из трех менеджеров геометрии в Tkinter. Именно он отвечает за горизонтальное и вертикальное размещение виджетов. На примере мы используем виджет Frame, доступ к которому получен атрибутом к корневому окну Tk. Он расширяется в обоих направлениях. Иными словами, он занимает все клиентское пространство корневого окна.

Корневое окно создано. Стоит отметить, что корневое окно является основным окном приложения в нашей программе. У него присутствуют заголовок и границы, реализованные менеджером окон. Корневое окно необходимо создавать для любых виджетов.

Метод geometry() задает размер окна и его расположение на экране. Первые два параметра определяют ширину и высоту окна. Последние два отвечают за «x» и «y» координаты на экране.

Здесь мы создаем образец класса приложения.

И, наконец-то, мы подходим к mainloop. Обработка событий начинается именно с этой точки. MainLoop получает информацию о событиях от системы окна и отправляет их виджетам приложения. Окно закрывается, когда мы нажимаем на кнопку закрытия или используем метод quit().

simple

Фигура: Обычное окно

Центрирование окна

Этот скрипт позволяет установить окно в центре экрана.

Нам нужно узнать размер окна и размер экрана, чтобы центрировать окно.

Это значения ширины и высоты окна нашего приложения.

С помощью этого кода мы определяем ширину и высоту экрана.

Теперь мы рассчитываем необходимые координаты «x» и «y».

В конце мы используем метод geometry(), чтобы центрировать окно на экране.

Кнопка выхода

В последнем примере этого раздела мы научимся создавать кнопку выхода. Когда мы нажимаем на эту кнопку, приложение закрывается.

Мы размещаем Button (кнопку) в нашем окне. Нажатие на кнопку завершит работу приложения.

Tkinter поддерживает тематизацию виджетов. Тематизированные виджеты можно импортировать из ttk модуля. На момент написания этого материала не все виджеты подлежали тематизации. Например, меню и выпадающие списки не поддерживали эту функцию.

Мы применяем тему к нашим виджетам. Среди поддерживаемых тем: calm, default, alt и classic.

Мы создаем образец виджета Button (кнопки). Контейнер Frame является родительским для этой кнопки. Мы обеспечиваем ярлык для кнопки и команду. Команда определяет использующийся метод при нажатии на кнопку. В нашем случае используется метод quit(), который завершает работу приложения.

Мы используем менеджер геометрии place для того, чтобы установить координаты 50х50 пикселей для кнопки от верхнего левого угла окна.

quitbutton
Это был раздел ознакомления с инструментом Tkinter.

Вам может быть интересно

Scroll Up