введениеданный набор библиотек лицензируется по lgpl, таким образом вы можете разрабатывать свободное программмное обеспечение, программное обеспечение с открытым кодом или даже закрытые коммерческие программмы не беспокоясь о лицензионных отчислениях или каких нибудь ограничениях в использовании gtk+. gtk (gimp toolkit) набор библиотек для построения графического интерфейса пользователя (gui). первоначально библиотека разрабатывалась в рамках проекта gnu image manipulation program (gimp) по созданию программмы редактирования изображений, но в данный момент написано огромное количество программм с использованием gtk, включая gnome (gnu network object model environment - сетевая объектная среда gnu). gtk разрабатывается на основе gdk (gimp drawing kit) которая в свою очередь является оболочкой для функций низкого уровня оконной среды (xlib в случае x window system), и gdk-pixbuf, библиотека манипулирования изображением на стороне клиента.
gtk в настоящее время поддерживается:
gtk - по существу объектно ориентированный программмный интерфейс приложения (api). хотя написан полностью на языке программмирования c, в нем заложены идеи классов и функций обратного вызова (сallback functions). еще есть третий компонент под названием glib предназначенный для замены некоторых стандартных вызовов, а также содержит некоторые дополнительные функции для работы со связанными списками и т.д. замененные функции предназначены для повышения мобильности gtk's, так некоторые функции реализованные здесь недоступны в некоторых системах (unixes), например g_strerror(). также внесены дополнения для libc, такие как g_malloc() для улучшения утилит отладки. в версии 2.0, glib собрала систему типов которая формирует фонд для иерархии классов gtk's, система сигналов которая используется повсюду в gtk, интерфейс библиотек, предоставляемый программмам при компиляции (api), которые резюмируют различия родных нитей apis разных платформ и средства для загрузки модулей. и как последний компонент, gtk использует библиотеку pango для интернационализации текстового вывода. есть привязки gtk (gtk bindings) для многих других языков программмирования: c++, guile, perl, python, tom, ada95, objective c, free pascal, eiffel, java и c#. это руководство описывает с интерфейс gtk. если вы хотите использовать gtk с другим языком программмирования, то вам следует в первую очередь ознакомится с документацией для привязки (gtk bindings) к этому языку. в ней может находится важная информация которая потребуется перед тем как изучать данное руководство. есть кроссплатформенные apis (такие как wxwindows и v) использующие gtk как основу, они также требуют изучения дополнительной документации. если вы разрабатываете ваше gtk приложение на языке с++, вам могут понадобится некоторые дополнения. для с++ существует привязка gtk--, она предоставляет лучший c++-like интерфейс для gtk; вам лучше изучить её чем это руководство. если вам не понравится этот подход то существует две альтернативы использования gtk. во первых вы можете применять для связи с gtk только c как подмножество c++ и затем использовать интерфейс с как описано в данном руководстве. во-вторых, вы можете использовать gtk совместно с c++ объявляя функции обратного вызова (callbacks) как статические в c++ классах, и вызывать gtk используя c интерфейс. если вы выберете последний вариант, то сможете использовать в качестве данных, передаваемых callback-функции, указатель на объект, с которым вы работаете (значение "this"). выбор между тремя этими способами вопрос вкуса, в любом случае вы получаете c++ и gtk. не один из этих вариантов не требует специального препроцессора и вы в любом случае получаете стандартный c++ для gtk. это руководство, попытка создать документацию по gtk, но оно не является полным. это руководство для хорошего понимания языка программмирования с и создания программм на нём. для читателя было бы хорошо знать основы программмирования в x среде, но это не является обязательным. если вы изучаете gtk как первый свой инструмент для создания оконных интерфейсов, то прокомментируйте пожалуйста с какими трудностями вы столкнулись изучая данное руководство. этот документ находится в постоянной разработке. вы можете посмотреть последние обновления на http://www.gtk.org/. замечания по поводу перевода можно отправлять sergeyvp@gmail.com. если вы сообщите о проблемах при изучении gtk по данному документу, то вы примете участие в улучшении данного руководства. пожалуйста посмотрите секцию содействие для получения дополнительной информации.
|