Python easygui: в помощь начинающим питоноводам

"Мы все учились понемногу..."

А.С. Пушкин

Многие сейчас проявляют интерес к языку "Пайтон" (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". Сами эти методы никаких файловых операций не производят, а просто возвращают строку с именем выбранного файла или каталога.

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

Михаил АСТАПЧИК

Версия для печатиВерсия для печати

Номер: 

38 за 2008 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя Андрей
Да, Python читается примерно как "Пайтон", но вот язык программирования Python по-русски, в подавляющем большинстве случаев, произносят как "питон". Тем более, что и переводится python, в том числе, и как "питон".