Gtk что это за программа
GTK+(сокращение от GIMP Toolkit) — один из двух наиболее популярных на сегодняшний день наборов элементов интерфейса для X Window System, которая является его основной, но не единственной целевой платформой. Будучи изначально частью графического редактора GIMP, он «отпочковался» в отдельный проект и приобрёл заметную популярность. GTK+ — свободное ПО, распространяемое на условиях GNU LGPL, и является частью проекта GNU. [2] [3]
Архитектура
GTK+ написан на языке Си, но тем не менее, является объектно-ориентированным. Одной из причин для выбора Си в качестве языка было желание легко строить интерфейсы для других языков программирования. В результате под GTK+ можно программировать не только на «родном» Си, но и на C++, Perl, Python, Java, PHP, Ruby, Lisp и других языках.
Собственно GTK+ состоит из двух компонентов: GTKи GDK. Первый содержит набор элементов пользовательского интерфейса, или «виджетов» (таких, как кнопка, список, поле для ввода текста и т. п. ) для различных задач. GDK отвечает за вывод на экран и может использовать для этого X Window System, Linux Framebuffer, WinAPI или функции Mac OS X. Начиная с версии 2.8, GDK во многом (но не полностью) заменена на систему отрисовки векторной графики Cairo.
C + Gtk+ создание простого приложения
Помимо Cairo, GTK+ зависит от трёх библиотек — GLib, Pango и ATK (англ.), — которые разрабатываются вместе с GTK+, но могут использоваться и отдельно. [3] [2]
Внешний вид
Внешний вид графических интерфейсов, созданных с использованием GTK+, может конфигурироваться пользователем и/или программистом. При этом настраиваются не только цвета и шрифты, но и способ отображения различных элементов. Достигается это за счёт использования «движков» для вывода на экран. Путём подключения другого движка можно кардинальным образом менять внешний вид программ. Например, некоторые движки могут использовать псевдо-трёхмерный вид, другие — более «плоский» и т. п.
Использование
На основе GTK+ построены рабочие окружения GNOME, LXDE и Xfce. Рабочее окружение GNOME является «основным» пользователем библиотеки, поэтому политика дизайнерских решений для GNOME и GTK+ обычно совпадает. Тем не менее, программы, использующие GTK+ не обязаны быть GNOME-программами и могут выполняться в других окружениях, например в Xfce и KDE. Кроме того, GTK+ может работать и на операционных системах семейства Microsoft Windows, Windows NT и Mac OS X.
GTK+ 3.0
Разработка следующей версии GTK+ началась в феврале 2009 на мероприятии «GTK+ Theming Hackfest», проходившем в Дублине [4] . Первый набросок плана разработки был опубликован 9 апреля 2009 [5] .
Пример программы
Простая программа «Здравствуй, мир!» на GTK+ в Linux
/* Подключаем библиотеку GTK+ */# includeintmain(intargc,char*argv[]){/* Объявляем виджеты */GtkWidget *label;// МеткаGtkWidget *window;// Главное окно/* Инициализируем GTK+ */gtk_init(argv);/* Создаем главное окно */window =gtk_window_new(GTK_WINDOW_TOPLEVEL);/* Устанавливаем заголовок окна «Здравствуй, мир!» */gtk_window_set_title(GTK_WINDOW(window),»Здравствуй, мир!»);/* Создаем метку с текстом «Здравствуй, мир!» */label =gtk_label_new(«Здравствуй, мир!»);/* Вставляем метку в главное окно */gtk_container_add(GTK_CONTAINER(window),label);/* Показываем окно вместе с виджетами */gtk_widget_show_all(window);/* Соединяем сигнал завершения с выходом из программы */g_signal_connect(G_OBJECT(window),»destroy»,G_CALLBACK(gtk_main_quit),NULL);/* Приложение переходит в вечный цикл ожидания действий пользователя */gtk_main();return0;}
Чтобы скомпилировать пример, нужно выполнить команду:
Георгий Михайленко — Библиотека GTK
gcc file_name.c `pkg-config —cflags —libs gtk+-2.0`
Пример команды для mingw32 в linux:
i686-pc-mingw32-gcc file_name.c `PKG_CONFIG_LIBDIR=yes PKG_CONFIG_PATH=/usr/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig/ pkg-config —cflags —libs gtk+-2.0`
Примечания
- ↑http://mail.gnome.org/archives/gtk-devel-list/2009-October/msg00079.html
- ↑ 2,02,1GTK+ 2.18.0 released (англ.) . Проверено 23 сентября 2009.
- ↑ 3,03,1GTK+ FAQ (англ.) . Проверено 25 октбяря 2008.
- ↑Анонс «GTK+ Theming Hackfest»
- ↑План работ Gtk+ 3.0
См. также
Интерфейсы для других языков программирования
- gtkmm (C++)
- PyGTK (Python)
- Gtk2-perl (Perl)
- PHP-GTK (PHP)
- Полный список интерфейсов, включая и «неофициальные»
Источник: www.sbup.com
Основы GTK+: Часть 1. Зачем использовать GTK+?
Эта статья первая из цикла, посвященного миру GTK+. В ней рассказано о том, что такое 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+ написан с использованием приемов и методов, признанных наилучшими в разработке программ, и даже если обнаруживаются недостатки (они существуют, потому что не бывает идеального ПО), разработчики делают все возможное, чтобы устранить их к следующей версии. Использование современного программного обеспечения означает, что Вы не застрянете с незаконченным куском работы, зачахнув на обочине истории.
Постоянная поддержка и разработка, также означает, что у Вас есть возможность повлиять на направление развития инструментария. В добавок ко всему, с выходом очередного релиза, в программу добавляются новые возможности и функциональность, основанные на просьбах пользователей, и исправляются старые ошибки.
При создании общего программного обеспечения, предназначенного широкому кругу пользователей, следует держать в голове несколько вещей: интернационализацию, локализацию и специальные возможности доступа к программе (обычно сокращаемые как i18n , l10n и a11y соответственно).
Интернационализация — это процесс подготовки программы к использованию людьми, говорящими на языках, отличных от того, на котором говорит создатель программы, таким образом делающий приложение независимым от любого из языков.
Интернационализация — это больше чем просто перевод текстовых сообщений в программе. Она заставляет обращать внимание на такие вещи, как различные способы письма (напр. иероглифы) и используемые алфавиты, различные направления письма, специальную обработку символов, требуемую для отображения многих языков и обеспечение поддержки соответствующих методов ввода текста. Во многих языках нельзя просто назначить каждой клавише клавиатуры свою букву алфавита, необходимо помнить, что существуют еще большие сложности, например, такие как использование правильных склонений в сообщениях.
Локализация тесно связана с интернационализацией по той причине, что подразумевает подготовку программы к использованию международной общественностью, однако предполагает больше, чем просто смену языка. Программа должна распознавать и правильно отображать различные форматы даты, времени, денег, чисел, правильно сортировать текст и еще много чего, о чем можно даже не знать, к примеру, в некоторых языках использование одного и того же символа, может толковаться по разному, в зависимости от его положения в слове.
Так же как интернационализация, хорошая локализация отражается на всем коде программы, и не может быть легко реализована, даже если постараться хорошо обдумать все детали. Однако GTK+ предоставляет все необходимые инструменты для интернационализации и локализации, в результате чего код (и даже скомпилированный код) без дополнительной доработки может быть исполнен с различными языками, на различных локалях. Все, что для этого необходимо, — это установить в операционной системе нужные форматы данных (для локализации) или файлы переводов (для интернационализации), которые могут поставляться с программой или отдельно. В результате достигается гибкость, которая по вкусу разработчикам, переводчикам и особенно пользователям.
Специальные возможности доступа — это то, что дает возможность каждому использовать программу. Некоторые пользователи имеют плохое зрение, некоторые не могут использовать клавиатуру или мышь, некоторые вообще не могут шевелить ни чем кроме глаз. И чтобы каждому из этих пользователей дать возможность использовать программу, нужно проделать огромный объем работы. К счастью, в GTK+ реализована сложная инфраструктура специальных возможностей, которая позволяет воспользоваться ее возможностями без дополнительной работы. Благодаря этой инфраструктуре (которая де-факто является стандартом на Unix системах), программы становятся доступны огромному числу пользователей.
Вы также можете воспользоваться преимуществами предоставляемыми специальными возможностями, такими как выполнение автоматических тестов графического интерфейса. Делая свое приложение доступным для программ, реализующих специальные возможности, вы делаете его доступным для программ-тестов, которые могут проверить поведение программы, иногда это позволяет избежать больших проблем, характерных для обычных способов создания графического интерфейса. Так же стоит помнить, что дополнительные возможности больше не являются просто полезной возможностью, многие положения, например, требования к ПО, предназначенному для использования в правительстве США, требуют от программ поддержки специальных возможностей.
Предыдущие три пункта, возможно, являются веской причиной, по которой следует использовать инструментарий, в частности GTK+, в котором на высоком уровне реализована поддержка всех трех возможностей. Эта поддержка не безупречна, но она лучшая среди современного программного обеспечения, и важность включения этих возможностей в создаваемые приложения не может быть преувеличена. В современном мире, где повсеместно используются компьютеры и пользователи работающие с ними многочисленны и разнообразны, становиться просто не возможно создать программный продукт, удовлетворяющий всем группам пользователей.
Это звучит обыденно, но на самом деле означает многое. Инструментарий должен быть легок для пользователей, позволяя создавать простой, интуитивно-понятный и приятный в использовании, даже для новичков, графический интерфейс. Создание правильной модели взаимодействия человек-компьютер — нетривиальная задача, и в этом смысле GTK+ — плод многих часов работы, результат многих, иногда трудных решений.
Дополнительно, GTK+ прост в использовании для разработчиков. Он позволяет сказать, то что Вы хотите, прямым языком, без отягощения Вас хламом, которым компьютеры стараются нагрузить людей, дабы компенсировать свой врожденный недостаток воображения.
GTK+ написан таким образом, что позволяет своим разработчикам добавлять новые возможности, а пользователям использовать эти возможности без внесения глобальных изменений в проект таким способом, который им по душе. Инструментарий расширяем, это означает, что можно добавлять собственные блоки и затем использовать их также, как и встроенные блоки. Допустим, можно создать собственный элемент управления, к примеру какой-нибудь график данных, а затем заставить следовать его стилю оформления, выбранному пользователем, так-же как это делают родные элементами управления GTK+.
Более того, GTK+ — настраиваемый инструментарий, что позволяет настроить его под свои нужды. В GTK+ есть система, которая распространяет настройки среди приложений, есть возможность выбора темы. Тема — это набор настроек, распространяемых совместно, она определяет как выглядят основные элементы управления GTK+, их точные размеры и поведение. Используя темы, можно (к примеру) имитировать вид разных операционных систем (см. Рисунок 1).
Рисунок 1. Примеры отображения приложений GTK+
Свободное программное обеспечение означает, что все могут не только получить и использовать инструментарий, но также распространять и изменять его в соответствии с определенными ограничениями. Общедоступная лицензия означает, что эти ограничения не значительны, а получаемая степень свободы велика.
Наиболее важно, что GTK+ адаптирован к лицензии LGPL (Lesser General Public License), в которой меньше ограничений, нежели чем в лицензии GNU. Лицензия LGPL позволяет свободно получать, изменять и распространять программное обеспечение, если внесенные изменения свободны. Лицензия LGPL также позволяет использовать функции библиотек без необходимости открывать их код. Это важно для многих промышленных пользователей, где нежелательно или недопустимо делать код общедоступным, зачастую, из-за ранее используемых лицензий. Используя лицензию LGPL, можно быть одновременно и хорошим бизнес-партнером, и сторонником открытых программ.
И последнее, но не менее важное, GTK+ обладает свойством переносимости. Это означает, что пользователи могут запускать его на многих платформах и системах. Разработчики, напротив, могут поставлять свое программное обеспечение многочисленным пользователям, написав программу только один раз, и также могут использовать различные платформы программирования и разработки, инструменты и языки программирования. Все это предназначено для большой потенциальной аудитории, причем для достижения ваших целей вы можете использовать более широкий набор средств и инструментов, наиболее подходящий для Ваших задач.
В совокупности все эти достоинства делают GTK+ прочной основой для разработки программного обеспечения. Используя GTK+, вы сможете сконцентрироваться на решении актуальных проблем, вместо того, чтобы «изобретать колесо», и можете быть уверены, создаваемое вами приложение будет вести себя так, как ожидают пользователи, решая их проблемы ,а не создавая новые.
Эта статья дает краткий и поверхностный обзор GTK+, не углубляясь в детали. В следующей части вы увидите код GTK+ в действии. Будет показано, как программа работает в действительности, дан обзор некоторых доступных инструментов и продемонстрирована работа GTK+ с различными платформами и языками программирования. В последней статье вы найдете примеры GTK+ в реальной обстановке, будут проанализированы проблемы совместимости и переносимости, установки и настройки GTK+ для ваших специфических нужд. Последнее, но не менее существенное, вы получите информацию, где можно найти поддержку , если вы решите использовать GTK+ в своих проектах.
03.2007 | ||
Источник: www.interface.ru Что такое среда выполнения GTK +? Вашему компьютеру это нужно?Разработчикам GTK +– это среда выполнения, которая применяется к ряду операционных систем. Если вы создаете интерфейс для программы, на компьютерах пользователей должна быть установлена среда выполнения GTK, чтобы программа работала. Большинство производителей компьютеров предварительно не устанавливают кроссплатформенную среду выполнения, поэтому пользователям необходимо лично установить GTK + Runtime Environment, чтобы ваше программное обеспечение работало как задумано. Вы, как разработчик программного обеспечения, можете включить всю среду выполнения GTK в свое программное обеспечение. Таким образом, пользователям не нужно сталкиваться с трудностями при использовании созданной вами компьютерной программы. Возможно, у вас возникли похожие проблемы с дистрибутивами программ. GTK + Runtime Environment
Длинная программа или программное обеспечение означает пустую трату ресурсов. Программа или программное обеспечение становятся длинными, если они пытаются включить все файлы времени выполнения библиотеки программного обеспечения. Большинство разработчиков программного обеспечения просто создают программу только с необходимыми модулями. Затем остальные управляются как другое программное обеспечение и преобразуются в среду выполнения. Возможно, вы уже сталкивались с тем, что при установке какого-либо программного обеспечения сначала запрашивается установка дистрибутива C ++ или VC ++. Таким же образом GTK + Runtime Environment создает среду, в которой пользовательские интерфейсы могут работать без проблем на разных типах компьютерных платформ. GTK + Архитектура
Существуют четыре фундаментальные библиотеки, образующие среду выполнения GTK +, необходимые для ваших приложений GTK. Они есть: GLib – это важная библиотека, которая обрабатывает структуры данных на основе языка Си. Cairo используется для обеспечения поддержки 2D-графики, которая должна оставаться согласованной в разных операционных системах. Он также использует аппаратное ускорение везде, где это возможно. Pango – это библиотека кода для разработки макетов. Основное внимание здесь уделяется кроссплатформенному удобству использования. ATK – это файл библиотеки, который содержит набор интерфейсов для обеспечения доступности. Инструмент ATK помогает разработчикам программного обеспечения в просмотре исходного кода на ряде устройств и наборов инструментов. GTK + Runtime Environment является бесплатным для коммерческого использования, изменения и повторного использования, и вы можете скачать его с gtk.org. Источник: techarks.ru В чем разница между GTK+ и Qt?Языки программирования и инструментарий — сложные темы. Вероятно, вам удавалось использовать компьютеры долгое время, не задумываясь. Но когда вы переключились на GNU/Linux, проблема внезапно стала актуальной. Это потому, что насколько хорошо приложение интегрируется с остальной частью вашего рабочего стола, часто возникает вопрос: сделано ли оно в GTK+ или Qt? Что такое GTK+ и Qt?GTK+ и Qt — это наборы инструментов, которые разработчики используют для структурирования внешнего вида и ощущения приложения. Эти наборы инструментов предоставляют кнопки, панели инструментов, ползунки и меню, которые вы видите при использовании приложения.
Инструментарий экономит время разработчиков. Вместо того, чтобы кодировать или проектировать размер, форму и внешний вид каждой кнопки, они могут позволить инструментарию позаботиться об этой работе. Это позволяет им сосредоточиться на основных функциях, которые предоставляет приложение, таких как редактирование документов или воспроизведение музыки. История GTK+ и QtHaarvard Nord и Eirik Chambe-Eng начали разработку Qt в 1991 году. Название, которое произносится как «милый», появилось из-за того, как буква Q выглядела в шрифте Eavcs Haavard и предыдущего использования буквы t в Xt, X инструментарий уже используется на рабочих столах Unix. Nord и Chambe-Eng позже стали соучредителем Quasar Technologies, которая стала Throll Tech, затем Throlltech, и теперь существует в другой форме, как The Qt Company. В 1995 году Throll Tech выпустила исходный код для версии Qt для GNU/Linux. Но это не соответствовало определению Free Software Foundation (FSF), так как людям не разрешалось распространять код, если они вносили какие-либо изменения. Только в 2000 году Throlltech предоставил пользователям свободу свободно редактировать и распространять код. GTK+ начинался как GIMP Toolkit, созданный Питером Мэттисом в качестве замены существующего интерфейса, используемого в программе манипуляции изображениями GNU. После переписывания инструментарий стал GTK+ и вышел в 1998 году. В отличие от Qt, у людей была свобода редактировать, изменять и делиться GTK+ с самого начала. Хотя Qt в некотором смысле является более универсальным и адаптируемым инструментарием, сообщество в течение первых лет консолидировалось вокруг GTK+. Стоит также отметить, что некоммерческий фонд GNOME теперь поддерживает GTK+, в то время как публично торгуемая компания The Qt Company ведет разработку Qt. Тем не менее, на данный момент ни один инструментарий не является «более бесплатным», чем другой. Настольные ПК и программное обеспечение на базе GTK
Если вы недавно перешли на GNU/Linux, есть большая вероятность, что вы используете настольный компьютер на базе GTK. Это связано с тем, что многие из лучших сред GNU/Linux для настольных систем используют GTK+. Возьмите GNOME, опцию по умолчанию в таких известных и хорошо зарекомендовавших себя ОС GNU/Linux, как Ubuntu, Fedora и Debian. Затем есть альтернативы, такие как MATE и Xfce, которые предлагают более легкие и более традиционные интерфейсы.
Давайте не будем забывать об elementary OS, новичке, который обслуживает последние коммутаторы больше, чем давние пользователи GNU/Linux. Многие из самых популярных приложений с открытым исходным кодом лучше интегрируются с десктопами на базе GTK. Это включает в себя такие программы, как Firefox, Thunderbird, LibreOffice и GIMP. Менее известные кроссплатформенные приложения на основе GTK включают AbiWord, Inkscape и Pidgin. Среди приложений GTK+ растет степень разнообразия. Программное обеспечение, разработанное специально для GNOME, может выглядеть неуместно даже на других настольных ПК на базе GTK. Это связано с тем, что руководящие принципы разработки интерфейса пользователя GNOME не поощряют использование меню и вносят другие, менее распространенные изменения. Также знайте, что многие приложения, предназначенные для elementary OS, недоступны для других рабочих столов. Между тем, большинство вышеупомянутых популярных кроссплатформенных инструментов GTK+ остаются относительно независимыми от настольных компьютеров (что означает, что они выглядят неуместно в GNOME и elementary OS, поскольку акцент делается на уникальном дизайне). Настольные ПК и программное обеспечение на основе Qt
Рабочий стол KDE Plasma является старейшей полнофункциональной рабочей средой для Linux. Если бы Qt был полностью открыт еще в 1996 году, GNOME мог бы даже не существовать. Более двух десятилетий спустя сообщество KDE продолжает предоставлять самый многофункциональный рабочий стол GNU/Linux. Поскольку существует так мало других настольных ПК на базе Qt, многие приложения Qt специально разработаны для настольных компьютеров Plasma и могут даже зависеть от различных компонентов KDE. По этой причине интеграция программного обеспечения KDE является одной из лучших среди любых настольных систем. Вы можете настроить интерфейс, который влияет на каждое приложение, или вы можете настроить одно приложение, пока оно не станет удобным. Тем не менее, Plasma Desktop не единственный, кто использует Qt. LXQt — это одна из альтернатив, которая фокусируется на том, чтобы быть легче и проще. Хотя некоторые программы KDE являются кроссплатформенными, эти программы не так известны за пределами сообщества GNU/Linux. Наиболее заметными исключениями могут быть Krita и digiKam. Не все программное обеспечение Qt специально разработано для KDE. К таким программам относятся медиаплеер VLC и настольное издательское приложение Scribus. Насколько важна разница?Есть технические различия между GTK+ и Qt, но большинство из них больше интересуют разработчиков, чем кого либо из нас. В наши дни ограничения еще труднее заметить, чем раньше. Благодаря отличной гибкости, многие приложения GTK+ теперь выглядят как дома на рабочем столе Plasma на базе Qt. Некоторые из этих приложений выглядят лучше на плазме, чем в GNOME. Между тем, вы также можете установить Scribus или VLC на рабочий стол на базе GTK, даже не осознавая, что есть разница за кулисами. Но небольшие несовместимости появляются время от времени. Приложения могут открывать другое окно выбора файлов, когда вы ищете файл для открытия. Настройки системных тем могут относиться к определенным приложениям, но не к другим. Чем больше вы возитесь с вашим рабочим столом, тем больше причуд может появиться. В конечном счете, вопрос о том, предпочитать ли вам GTK+ или Qt, сводится к выбору вашего любимого интерфейса рабочего стола и ваших любимых приложений для Linux. Источник: komyounity.com |