Введение

PyGTK 2.0 это набор модулей, написанных на языке Python которые предоставляют родной интерфейс для библиотеки GTK2.X. В дальнейшем мы будем под PyGTK подразумевать PyGTK 2.X, а под GTK и GTK+ библиотеку GTK+ 2.X. Официальный сайт PyGTK: www.pygtk.org. Основной разработчик PyGTK:

который был поддержан другими разработчиками, их имена вы можете прочитать в файле AUTHORS который включен в состав дистрибутива PyGTK

Python это расширяемый, объектно-ориентированный, интерпретируемый язык программирования, содержащий богатый набор модулей, предоставляющих доступ к большому числу сервисов операционной системы (ОС), сервисов сети Интернет (таких как HTML, XML, FTP и т.д.), графическим библиотекам (Opengl, TK и т.д.), операциям над строками, почтовым сервисам(IMAP, SMTP, POP3 и т.д.), мультимедиа(звук, JPEG) и сервисам шифрования. В добавок к этому, огромное число модулей доступно из сторонних источников. Python имеет лицензию близкую к LGPL, и доступен в операционных системах Linux, Unix, Windows и MacOS. Более подробную информацию вы можете получить на сайте www.python.org. Основной разработчик языка Python:

GTK (GIMP Toolkit) это библиотека позволяющая создавать графические интерфейсы (GUI). Она лицензирована под LGPL, поэтому вы можете разрабатывыть открытое, свободное, либо проприетарное ПО используя GTK без затрат на лицензионные выплаты и гонорары.

Библиотека была названа GIMP Toolkit из-за того, что она изначально была написана для разработки GNU Image Manipulation Program (GIMP), но сейчас она используется для огромного числа проектов, включая GNU Network Object Model Environment (GNOME). GTK была создана на основе библиотеки GDK (GIMP Drawing Kit), которая предоставляет обёртку для доступа к основным функциям управления окнами (например, над Xlib, если в системе используется X Window System). Основными авторами GTK являются:

Сейчас GTK разрабатывается с помощью:

GTK является объектно ориентированным программным интерфейсом (API). Несмотря на то, что GTK была написана полностью на языке C, она имеет встроенную поддержку классов и Callback функций (функции обратного вызова), используя, при этом, указатели на функции.

Также есть третий компонент, который называется GLib и содержит замену некоторым системным вызовам, а так же несколько функций для работы со связанными списками и т.д. Замена системных вызовов сделана для улучшения портируемости библиотеки, т.к. некоторые функции невозможны, либо нестандартны для других ОС. GLib также содержит улучшения для функций libc, к примеру g_malloc который дополнен отладочными возможностями.

В PyGTK версии 2.0 включены:

  • система типов, сформировавшая основу для иерархии классов GTK;
  • система сигналов GTK;
  • программный интерфейс работы с потоками, независимыми от используемой платформы;
  • система подгрузки модулей.

Последним компонентом GTK является библиотека Pango, созданная для поддержки интернационализации.

Этот учебник описывает интерфейс библиотеки GTK+ для языка Python и основан на GTK+ 2.0 Tutorial, написанным Tony Gale и Ian Main. В нём мы стремится описать наибольшее количество возможностей PyGTK, но это не значит что будут описаны они все.

Данный учебник подразумевает то, что читатель знает язык Python, и знает как создавать и запускать программы на нём. Если вы не знакомы с Python, пожалуйста, сначала ознакомьтесь с Python Tutorial. Мы не предполагаем у читателя знания библиотеки GTK, но изучая PyGTK по этому учебнику, читатель частично осваивает и GTK. Пожалуйста, напишите нам, если Вы имеете проблемы с обучением по данному учебнику.

Здесь не объясняется как скомпилировать или установить из исходников Python, GTK+, PyGTK. Но в теме “Инструментарий разработчика на PyGTK” мы опишем необходимые и доступные вещи, с которыми сами ежедневно работаем.

Учебник основан на:

  • GTK+ 2.0 до GTK+ 2.4
  • Python 2.2
  • PyGTK 2.0 до PyGTK 2.4

Оригинальные примеры были написаны на ОС RedHat 9.0 Джоном Финли или его друзьями. Затем, в руках переводчиков, тестировались и исправлялись на современном русифицированном дистрибутиве Linux Mint 11 Росинка, полностью совместимом с Ubuntu 11.04.

Поэтому исходные коды, представленные в учебнике полноценно работают на:

  • GTK+ 2.24
  • Python 2.7
  • PyGTK 2.22

Мы бы хотели знать о проблемах, возникающих у Вас в ходе изучения PyGTK по этому документу. Будем признательны за Ваши предложения по его улучшению.

Наш сайт (www.pygtk.ru), а также официальный сайт PyGTK (www.pygtk.org) содержат и другие материалы, которые могут помочь в изучении PyGTK, включая ссылку на обширный FAQ, другие статьи и учебники, почтовые рассылки и чат IRC.

1.1. Инструментарий разработчика на PyGTK

Для того, чтобы познакомится с PyGTK, запустив простейшую программу, необходимо наличие в Вашей ОС всего двух установленных пакетов: Python и PyGTK (т.к. последний устанавливается только при наличии GTK). Но чтобы программировать производительно, Вам нужно обустроить своё рабочее место инструментами программиста на PyGTK.
Каждый человек особенный, поэтому далее мы сможем только рекомендовать что-то, а Вам предстоит выбрать – устраивает ли оно Вас.

Во-первых, поскольку все исходные коды представлены в кодировке UTF-8 и русифицированы, то лучшим выбором в роли ОС будет любой современный дистрибутив GNU/Linux с установленной русской локализацией. Использование Windows возможно, но потребует дополнительных знаний в области конвертации кодировок, если Вы захотите читать в консоли стандартный вывод Ваших приложений.

Во-вторых, для того чтобы просмотреть наличие атрибутов у какого-либо модуля, удобно использовать ipython:

 

djbaldey@rosix ~ $ ipython
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)
Type "copyright", "credits" or "license" for more information.

IPython 0.10.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.

In [1]: import pyg
pygame  pygst   pygtk   

In [1]: import pyg
pygame  pygst   pygtk   

In [1]: import pygtk

In [2]: pygtk.r
pygtk.require    pygtk.require20  

In [2]: pygtk.require('2.0')

In [3]: import gtk

In [4]: w = gtk.Window()

In [5]: w
Out[5]: <gtk.Window object at 0x8d1d25c (GtkWindow at 0x8ff7860)>

In [6]:

Его поведение схоже с поведением оболочки bash, и по клавише <TAB> можно узнать о том, какие же методы и атрибуты применимы к объекту в программе. Эта программа обладает и другими улучшениями обычного интерпретатора Python.

Для поиска по справочным материалам разработчика мы используем Devhelp.

Для создания сложных интерфейсов используем Glade.

Для редактирования исходных кодов используем Geany.

Но это всего лишь наш выбор, Ваши предпочтения могут быть другими.

 

Предыдущая страница На уровень выше  Следующая страница
Учебник PyGTK 2 К оглавлению  Глава 2. Начало работы

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>