"Мы все учились
понемногу..." А.С. Пушкин |
Многие сейчас проявляют интерес к языку "Пайтон" (Python) - свободному интерпретируемому объектно-ориентированному языку программирования высокого уровня. Этот язык создал Гуидо ван Россум и назвал в честь своего любимого шоу "Monty Python's Flying Circus".
Интерес к проекту ван Россума совершенно не случаен. "Пайтон" - язык универсальный, он широко используется во всём мире для самых разных целей - базы данных, обработка текстов, создание плагинов и расширений для редакторов GIMP и Blender, веб-приложения. Его использует Google как основной скриптовый язык в своих чудовищных дата-центрах. "Пайтон" является кроссплатформенным, а на платформе "Линукс" он стал уже практически обязательным наравне с bash.
"Пайтон" обладает богатой стандартной библиотекой и ещё более богатым набором модулей, написанных третьими лицами. Предлагаю познакомиться с модулем easygui, который, в первую очередь, может весьма пригодиться новичкам, заинтересовавшимся "Пайтоном". Но и поднаторевшим в этом языке данный модуль может весьма упростить кодинг.
Модуль easygui - это джентльменский набор из двух десятков функций-методов, облегчающих в скриптах "Пайтона" создание элементов графического интерфейса. Графический интерфейс в "Пайтоне" реализуется при помощи библиотек TKinter и WxPython, которые для начинающего могут оказаться недостаточно лёгкими. Методы easygui являются как бы обёрткой к функциям TKinter, в результате чего элементы графического интерфейса легко и непринуждённо вызываются в одну-две строчки. Это позволяет на первых порах начинающим не особо заморачиваться изучением этой самой библиотеки TKinter. Также easygui будет хорош и для черновых набросков скриптов с графическим интерфейсом. Но всё-таки полноценного графического приложения на "Пайтоне" при помощи этого модуля вы не создадите.
Сайт библиотеки - easygui.sourceforge.net. Сама библиотека easygui.py весит около 50 килобайт. Для задействования этого модуля его следует поместить в каталог вместе с исполняемым скриптом или же положить в системную папку библиотек "Пайтона". Например, для системы "Линукс" это каталог /usr/lib/python2.5/site-packages. Подгружаются все методы в исполняемый скрипт стандартным путём:
from easygui import *
Модуль может работать в демонстрационном режиме:
$python easygui.py
Появится окно со списком-меню всех визуальных элементов этой библиотеки, которые можно посмотреть непосредственно в действии. Также в папке, откуда импортирован easygui.py, образуется специальный файл easygui.pyc, который представляет собой платформо-незасимый байт-код, используемый для увеличения скорости работы модуля.
Начнём с элементов отображения информации. Самое простое - это обычное окошко сообщения msgbox с большой кнопкой "ок" посередине. Методу msgbox можно передать не только текст сообщения и заголовок, но и файл изображения в формате gif:
message = 'Привет, мир!' title = 'Привет' button = 'OK' image = 'python.gif' msgbox(message, title, button, image)
Для отображения более обширной текстовой информации из текстовых файлов представлены элементы textbox и codebox. Они представляют собой поля вывода текста с необходимыми для чтения полосами прокрутки. Разница между ними в том, что textbox выводит текст с переносами строки, а codebox сохраняет всё форматирование табуляцией, пробелами и переносами как есть.
filename = 'text.txt' f = open(filename, 'r') content = f.readlines() f.close() codebox(filename, 'Просмотр файла', content)
Имеется большое количество диалоговых окон разного типа, для обеспечения интерактивного выбора и управления скриптом. Так, элементы ccbox, ynbox выдают банальные диалоги типа "Continue-Cancel", "Yes-No". Диалоги buttonbox, indexbox, boolbox позволяют по своему усмотрению задавать параметры кнопок:
msg = 'Выбрать поэта' title = ' ' choices = ['Пушкин', 'Кукушкин'] choice = indexbox(msg, title, choices)
Для более продвинутого выбора предназначены элементы меню choicebox и multchoicebox. Последний позволяет выбрать несколько элементов из меню и возвращает полученный набор в виде списка:
title = 'Поэзия' msg ='Ваш любимый поэт?' choices = ['Пушкин', 'Пастернак', 'Маяковский', 'Ахматова'] choice = choicebox(msg, title, choices)
Элементы ввода информации тоже присутствуют. Enterbox, multenterbox и integerbox предназначены для ввода строковых и цифровых значений, соответственно. Passwordbox и multipasswordbox - для ввода в виде звёздочек суперсекретных данных типа пароля.
И завершают библиотеку элементы для работы с файлами и каталогами diropenbox, file-openbox, filesavebox. Это привычные всем диалоги открытия-закрытия файлов типа "Open file", "Save file". Сами эти методы никаких файловых операций не производят, а просто возвращают строку с именем выбранного файла или каталога.
Вот и всё. Как видите, библиотека не очень сложная в использовании. Очень быстро отличник по информатике в школе сможет создать небольшие кроссплатформенные приложения типа проверки знаний по литературе и другим предметам. Шароварщики такие программы не пишут, а вот учительнице будет приятно.
Михаил АСТАПЧИК
Комментарии