Основы GTK+

Часть 1. Зачем использовать GTK+?

Разработка лучших приложений с графическим пользовательским интерфейсом

Comments

Серия контента:

Этот контент является частью # из серии # статей: Основы GTK+

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Основы GTK+

Следите за выходом новых статей этой серии.

GTK+ - это инструментарий создания графического интерфейса пользователя (GUI). Это библиотека (точнее, это набор сильно связанных между собой библиотек), которая позволяет создавать программы с графическим интерфейсом. Можно сказать, что GTK+ предоставляет готовые кирпичики для построения графического интерфейса.

Изначально, GTK+ разрабатывался в рамках проекта, широко известного графического редактора GIMP (GNU Image Manipulation Program). Работая над ранними версиями GIMP, взамен инструментарию Motif, который в то время еще не был свободным, Питер Матис (Peter Mattis) и Спенсер Кимбал (Spencer Kimball) разработали GTK (основанный на коде GIMP). Когда инструментарий обрел объектно-ориентированные свойства, к названию GTK добавили значок плюса, получилось GTK+.

Все это произошло почти 10 лет назад. В настоящее время, активно разрабатывается GTK+ версии 2.8, а GIMP остается одной из самых известных программ, использующих GTK+, но в то же время не единственной. Без преувеличения, тысячи программ написаны с использованием GTK+, и, как минимум, два рабочих стола (Xfce и GNOME) используют GTK+, чтобы предоставить пользователям быстрое и мощное рабочее окружение.

Зачем использовать инструментарий при создании графических приложений?

Использование такой библиотеки как GTK+ дает значительные преимущества при создании собственного графического приложения. Например, значительно сокращается время разработки, нет необходимости дублирования обыкновенных вещей, что позволяет программисту сосредоточиться на реализации уникальных функций проекта. Для пользователей, такие преимущества означают великолепную совместимость всех их приложений: где бы инструментарий не работал, там же будут работать приложения. Такая переносимость возможна за счет того, что используется набор совместимых средств и вещи, созданные с помощью этих средств, могут использоваться всеми, кто использует библиотеку, вне зависимости от того, где они ее используют.

В действительности, современные графические инструментарии позволяют делать значительно больше, чем просто избежать дублирования. Они предлагают множество возможностей, к которым привыкли пользователи, но которые не реализуемы в простых проектах из-за того, что они значительно увеличивают трудозатраты и время на создание приложения. Поэтому, если наличие графического интерфейса для программы является обязательным, следует использовать графический инструментарий. На самом деле, другого выхода просто нет. Остается только один вопрос: какой инструментарий использовать?

Достоинства GTK+

Каковы бы ни были Ваши вопросы при разработке приложения, GTK+ - это тот ответ, который Вы ищете. GTK+ есть что предложить:

  • Он одновременно современный, активно разрабатываемый и поддерживаемый энергичным сообществом, графический инструментарий;
  • Он включает большой круг возможностей, позволяющий использовать программу максимальному числу людей, благодаря сложнейшим механизмам интернационализации, локализации и специальных возможностей доступа к программе;
  • Он простой и легкий в использовании для программистов и пользователей;
  • Он отлично спроектирован, гибок и расширяем;
  • Он свободно распространяется по общедоступной лицензии;
  • Он переносим как с точки зрения пользователей, так и программистов.

Современный и активно разрабатываемый инструментарий

GTK+ написан с использованием приемов и методов, признанных наилучшими в разработке программ, и даже если обнаруживаются недостатки (они существуют, потому что не бывает идеального ПО), разработчики делают все возможное, чтобы устранить их к следующей версии. Использование современного программного обеспечения означает, что Вы не застрянете с незаконченным куском работы, зачахнув на обочине истории.

Постоянная поддержка и разработка, также означает, что у Вас есть возможность повлиять на направление развития инструментария. В добавок ко всему, с выходом очередного релиза, в программу добавляются новые возможности и функциональность, основанные на просьбах пользователей, и исправляются старые ошибки.

Интернационализация, локализация и специальные возможности доступа

При создании общего программного обеспечения, предназначенного широкому кругу пользователей, следует держать в голове несколько вещей: интернационализацию, локализацию и специальные возможности доступа к программе (обычно сокращаемые как i18n, l10n и a11y соответственно).

Интернационализация – это процесс подготовки программы к использованию людьми, говорящими на языках, отличных от того, на котором говорит создатель программы, таким образом делающий приложение независимым от любого из языков.

Интернационализация – это больше чем просто перевод текстовых сообщений в программе. Она заставляет обращать внимание на такие вещи, как различные способы письма (напр. иероглифы) и используемые алфавиты, различные направления письма, специальную обработку символов, требуемую для отображения многих языков и обеспечение поддержки соответствующих методов ввода текста. Во многих языках нельзя просто назначить каждой клавише клавиатуры свою букву алфавита, необходимо помнить, что существуют еще большие сложности, например, такие как использование правильных склонений в сообщениях.

Локализация тесно связана с интернационализацией по той причине, что подразумевает подготовку программы к использованию международной общественностью, однако предполагает больше, чем просто смену языка. Программа должна распознавать и правильно отображать различные форматы даты, времени, денег, чисел, правильно сортировать текст и еще много чего, о чем можно даже не знать, к примеру, в некоторых языках использование одного и того же символа, может толковаться по разному, в зависимости от его положения в слове.

Так же как интернационализация, хорошая локализация отражается на всем коде программы, и не может быть легко реализована, даже если постараться хорошо обдумать все детали. Однако GTK+ предоставляет все необходимые инструменты для интернационализации и локализации, в результате чего код (и даже скомпилированный код) без дополнительной доработки может быть исполнен с различными языками, на различных локалях. Все, что для этого необходимо, – это установить в операционной системе нужные форматы данных (для локализации) или файлы переводов (для интернационализации), которые могут поставляться с программой или отдельно. В результате достигается гибкость, которая по вкусу разработчикам, переводчикам и особенно пользователям.

Специальные возможности доступа – это то, что дает возможность каждому использовать программу. Некоторые пользователи имеют плохое зрение, некоторые не могут использовать клавиатуру или мышь, некоторые вообще не могут шевелить ни чем кроме глаз. И чтобы каждому из этих пользователей дать возможность использовать программу, нужно проделать огромный объем работы. К счастью, в GTK+ реализована сложная инфраструктура специальных возможностей, которая позволяет воспользоваться ее возможностями без дополнительной работы. Благодаря этой инфраструктуре (которая де-факто является стандартом на Unix системах), программы становятся доступны огромному числу пользователей.

Вы также можете воспользоваться преимуществами предоставляемыми специальными возможностями, такими как выполнение автоматических тестов графического интерфейса. Делая свое приложение доступным для программ, реализующих специальные возможности, вы делаете его доступным для программ-тестов, которые могут проверить поведение программы, иногда это позволяет избежать больших проблем, характерных для обычных способов создания графического интерфейса. Так же стоит помнить, что дополнительные возможности больше не являются просто полезной возможностью, многие положения, например, требования к ПО, предназначенному для использования в правительстве США, требуют от программ поддержки специальных возможностей.

Предыдущие три пункта, возможно, являются веской причиной, по которой следует использовать инструментарий, в частности GTK+, в котором на высоком уровне реализована поддержка всех трех возможностей. Эта поддержка не безупречна, но она лучшая среди современного программного обеспечения, и важность включения этих возможностей в создаваемые приложения не может быть преувеличена. В современном мире, где повсеместно используются компьютеры и пользователи работающие с ними многочисленны и разнообразны, становиться просто не возможно создать программный продукт, удовлетворяющий всем группам пользователей.

Простота и легкость в использовании

Это звучит обыденно, но на самом деле означает многое. Инструментарий должен быть легок для пользователей, позволяя создавать простой, интуитивно-понятный и приятный в использовании, даже для новичков, графический интерфейс. Создание правильной модели взаимодействия человек-компьютер – нетривиальная задача, и в этом смысле GTK+ - плод многих часов работы, результат многих, иногда трудных решений.

Дополнительно, GTK+ прост в использовании для разработчиков. Он позволяет сказать, то что Вы хотите, прямым языком, без отягощения Вас хламом, которым компьютеры стараются нагрузить людей, дабы компенсировать свой врожденный недостаток воображения.

Хорошие решения, гибкость и расширяемость

GTK+ написан таким образом, что позволяет своим разработчикам добавлять новые возможности, а пользователям использовать эти возможности без внесения глобальных изменений в проект таким способом, который им по душе. Инструментарий расширяем, это означает, что можно добавлять собственные блоки и затем использовать их также, как и встроенные блоки. Допустим, можно создать собственный элемент управления, к примеру какой-нибудь график данных, а затем заставить следовать его стилю оформления, выбранному пользователем, так-же как это делают родные элементами управления GTK+.

Более того, GTK+ - настраиваемый инструментарий, что позволяет настроить его под свои нужды. В GTK+ есть система, которая распространяет настройки среди приложений, есть возможность выбора темы. Тема - это набор настроек, распространяемых совместно, она определяет как выглядят основные элементы управления GTK+, их точные размеры и поведение. Используя темы, можно (к примеру) имитировать вид разных операционных систем (см. Рисунок 1).

Рисунок 1. Примеры отображения приложений GTK+
Примеры отображения приложений GTK+
Примеры отображения приложений GTK+

Свободное ПО с общедоступной лицензией

Свободное программное обеспечение означает, что все могут не только получить и использовать инструментарий, но также распространять и изменять его в соответствии с определенными ограничениями. Общедоступная лицензия означает, что эти ограничения не значительны, а получаемая степень свободы велика. Наиболее важно, что GTK+ адаптирован к лицензии LGPL (Lesser General Public License), в которой меньше ограничений, нежели чем в лицензии GNU. Лицензия LGPL позволяет свободно получать, изменять и распространять программное обеспечение, если внесенные изменения свободны. Лицензия LGPL также позволяет использовать функции библиотек без необходимости открывать их код. Это важно для многих промышленных пользователей, где нежелательно или недопустимо делать код общедоступным, зачастую, из-за ранее используемых лицензий. Используя лицензию LGPL, можно быть одновременно и хорошим бизнес-партнером, и сторонником открытых программ.

Переносимость

И последнее, но не менее важное, GTK+ обладает свойством переносимости. Это означает, что пользователи могут запускать его на многих платформах и системах. Разработчики, напротив, могут поставлять свое программное обеспечение многочисленным пользователям, написав программу только один раз, и также могут использовать различные платформы программирования и разработки, инструменты и языки программирования. Все это предназначено для большой потенциальной аудитории, причем для достижения ваших целей вы можете использовать более широкий набор средств и инструментов, наиболее подходящий для Ваших задач.

В совокупности все эти достоинства делают GTK+ прочной основой для разработки программного обеспечения. Используя GTK+, вы сможете сконцентрироваться на решении актуальных проблем, вместо того, чтобы «изобретать колесо», и можете быть уверены, создаваемое вами приложение будет вести себя так, как ожидают пользователи, решая их проблемы ,а не создавая новые.

В следующей статье

Эта статья дает краткий и поверхностный обзор GTK+, не углубляясь в детали. В следующей части вы увидите код GTK+ в действии. Будет показано, как программа работает в действительности, дан обзор некоторых доступных инструментов и продемонстрирована работа GTK+ с различными платформами и языками программирования. В последней статье вы найдете примеры GTK+ в реальной обстановке, будут проанализированы проблемы совместимости и переносимости, установки и настройки GTK+ для ваших специфических нужд. Последнее, но не менее существенное, вы получите информацию, где можно найти поддержку , если вы решите использовать GTK+ в своих проектах.


Ресурсы для скачивания


Похожие темы

  • Оригинальная статья;
  • Посетите GTK+ , чтобы получить больше информации об инструментарии;
  • Страницы руководства GTK+ API необходимы каждому разработчику;
  • В книге The Official GNOME 2 Developer's Guide Матиса Варкуса (Matthias Warkus) описано программирование в GNOME 2, включая программирование с GTK+;
  • Получите официальные исходные коды GTK+.
  • Скачайте первую и наиболее известную программу GTK+ графический редактор GIMP и посетите сайт российских пользователей GIMP.
  • Посмотрите GNOME - рабочий стол Linux, разработанный с использованием GTK+;
  • Try Xfce, a fast and easy desktop, also developed with GTK+.
  • Посетите Gnomefiles и скачайте более 1,000 приложений, разработанных с использованием GTK+
  • Посетите сайт developerWorks Opensource, чтобы получить больше информации о методах, средствах и изменениях в проектах для разработки с использованием открытых технологий и их использования с продуктами IBM.
  • Используйте инновации в Вашем следующем открытом проекте с помощью IBM trial software, доступного для загрузки и на DVD.

Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Open source
ArticleID=107288
ArticleTitle=Основы GTK+: Часть 1. Зачем использовать GTK+?
publish-date=03302006