ИЗ ОПЫТА ИСПОЛЬЗОВАНИЯ КРОССПЛАТФОРМЕННОЙ БИБЛИОТЕКИ ТКINTER ДЛЯ РАЗРАБОТКИ ВИЗУАЛЬНЫХ ПРИЛОЖЕНИЙ С ЭЛЕМЕНТАМИ АНИМАЦИИ
А.Н. Маслобоев
Санкт-Петербургский государственный университет промышленных технологий и дизайна
В настоящее время одним из перспективных направлений развития информационных технологий является создание на языках высокого уровня приложений, которые наглядно демонстрируют определенные процессы или явления как природного, так и технического характера. Поэтому визуальная компонента таких приложений становится важнейшей и неотъемлемой их частью. При этом программные продукты, созданные с помощью современных сред программирования, позволяют не просто статически отображать эти процессы, а показывают их в развитии, в динамике.
Существуют различные языки и среды программирования, которые могут выполнить задачу по разработке подобного рода приложений, но наиболее оптимальным представляется использование свободно распространяемого программного обеспечения [1]. В этом ряду особое место занимает высокоуровневый универсальный интерпретируемый язык программирования Python и интегрированная среда разработки IDLE Python [2]. Аббревиатура IDLE в названии данной среды расшифровывается как Integrated Development and Learning Environment, то есть интегрированная среда разработки и обучения.
Язык Python сочетает в себе сравнительную легкость и простоту освоения (благодаря близости к естественному человеческому языку, то есть тому языку, на котором люди общаются между собой) с наличием обширных возможностей для создания серьезных профессиональных приложений, которые могут найти свое применение в самых различных сферах человеческой деятельности [3]. К областям применения данного языка относится анализ данных, web-программирование, машинное обучение и ряд других.
Широкий спектр возможностей языка Python включает также и наличие средств по разработке приложений с графическим пользовательским интерфейсом и элементами анимации. Для языка Python характерна модульная структура, то есть в зависимости от поставленной задачи к основному ядру языка можно подключать дополнительные модули. Часть этих модулей успешно используется и для разработки различных элементов компьютерной графики, при этом в данной статье основной акцент сделан на применении для этой цели кроссплатформенной событийно-ориентированной библиотеки tkinter, входя- щей в стандартную поставку языка Python [4].
Пакет tkinter, который является так же, как и сам язык Python свободно распространяемым программным обеспечением, базируется на кроссплатформенной библиотеке базовых графических элементов Тk, распространяемой с открытыми исходными текстами. Конструи- рование GUI (графического пользовательского интерфейса) осуществляется с помощью набора элементов интерфейса, которые в терминологии, используемой в tkinter, называются виджетами. К числу виджетов относятся экранные кнопки, надписи, одностороные и многострочные текстовые поля, флажки, переключатели (радиокнопки), списки различных видов, элементы меню, полосы прокрутки, фреймы для оформления групп виджетов и другие.
Каждый виджет обладает набором свойств (параметров), которые позволяют определить его внешний вид и настроить поведение. Особое место среди этих элементов занимает виджет Canvas, представляющий собой своего рода полотно, на котором могут размещаться различные геометрические фигуры, изображения и другие виджеты, представляющие собой различные элементы управления. Затем программисту остается написать программный код, описывающий реакцию имеющихся в приложении виджетов на различные программ- ные события (например, щелчок левой или правой клавишей мыши, нажатие определенной клавиши, получение сигнала от таймера и так далее).
Таким образом, кроссплатформенный пакет tkinter поддерживает передовую современную технологию объектно-ориентированного программирования.
Автором данной статьи было разработано приложение spacetravel, которое наглядно показывает основные возможности пакета tkinter. В этом приложении создана анимационная модель перелета космического корабля, созданного на нашей планете, с Земли на Марс и ответного визита гипотетических представителей инопланетной цивилизации в обратном направлении.
Интерфейс приложения, созданный на основе виджета Canvas, включает надпись, поясняющую содержание приложения, схематические изображения планет Земли и Марса, космического корабля, построенного человеческой цивилизацией, и «летающей тарелки», созданной гипотетической цивилизацией обитателей Марса. Для управления движением объектов на Canvas помещены три виджета типа Button (экранные кнопки). С каждой из этих экранных кнопок в приложении связана одна из имеющихся в программе функций.
Программный код приложения, написанный на языке Python включает команды для импортирования библиотеки tkinter и модуля time (последний предназначен для работы со временем, как системным, так и представленном в формате, удобном для восприятия человеком), основной программный модуль и три дополнительные функции earth, mars и reset. Функция earth выполняет перемещение космического корабля землян «Гея», функция mars – корабля марсиан «Барсум», а функция reset – возвращение приложения в начальное состояние. Эффект анимации обеспечивается методом перерисовки изображения с малыми временными интервалами (в данной программе такой интервал равен 0,05с).
Опыт разработки данной программы показывает, что кроссплатформенная библиотека tkinkter может быть с успехов применена для разработки сравнительно несложных программных продуктов с визуальными компонентами и элементами анимации, причем для этого не требуется усилия целого коллектива программистов, а достаточно работы одного специалиста, знакомого с основными структурами языка Python и принципами использования кроссплатформенной библиотеки, название которой указано в заголовке данной статьи.
ЛИТЕРАТУРА
- Маслобоев, А.Н. Разработка приложения с анимацией как составная часть обучения современным информационным технологиям // Актуальные проблемы радио- и кинотехнологий: материалы II Междунар. науч.-техн. конф., Санкт-Петербург, 24–27 октября 2017 г. – Санкт-Петербург, 2018. – С. 61–69.
- Официальный сайт языка программирования Python. – Режим доступа: https://www.python.org – Дата доступа: 08.01.2024.
- Маслобоев, А.Н. Языки и методы программирования. Основы программирования на языке Python: учеб. пособие. – Санкт-Петербург: ВШТЭ СПбГУПТД, 2024. – 62с.
- Маслобоев, А.Н. Создание приложений с элементами анимации средствами свободно распространяемого программного обеспечения // Актуальные проблемы радио- и кинотехнологий: материалы VII Междунар. науч.-техн. конф., посвященной 130-летию со дня рождения изобретателя первого в мире видеомагнитофона А.М. Понятова, Санкт-Петербург, 15–16 ноября 2022 г. – Санкт-Петербург, 2023. – С. 94–98.