1 / 14

Сравнительный анализ библиотек построения GUI на Maemo 4/5

Сравнительный анализ библиотек построения GUI на Maemo 4/5. Дорохова Р.В. GTK+. Краткая история. GIMP (GNU Image Manipulation ) - Peter Mattis, Spencer Kimball и Josh Macdonald.Спенсер - GTK Marius Vollmer – языковые привязки Lars Hamann и Stefan Jeske - основные элементы управления

brigid
Télécharger la présentation

Сравнительный анализ библиотек построения GUI на Maemo 4/5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Сравнительный анализ библиотек построения GUI на Maemo 4/5 Дорохова Р.В.

  2. GTK+. Краткая история. • GIMP (GNU Image Manipulation) - Peter Mattis, Spencer Kimball и Josh Macdonald.Спенсер - GTK • Marius Vollmer – языковые привязки • Lars Hamann и Stefan Jeske - основные элементы управления • Carsten Haitzler – поддержка тем • Shawn Amundson - менеджмент релизов GTK+-1.0 и GTK+-1.2.

  3. GTK. Основные компоненты. GTK+ зависит от следующих библиотек: • GLib • Pango • ATK • GdkPixbuf • GDK • GTK

  4. gulong g_signal_connect( gpointer *object, const gchar *name, GCallback func, gpointerfunc_data ); gulong g_signal_connect_swapped( gpointer *object, const gchar *name, GCallback func, gpointer*slot_object ); void callback_func( GtkWidget *widget, gpointercallback_data ); void callback_func( GtkObject *object ); Сигналы и обратные вызовы.

  5. События • Представляют собой разновидность сигналов • Тесно связаны с событиями системы X-Window • Общий вид заголовка функции-обработчика событий: gint callback_func(GtkWidget *widget, GdkEvent *event, gpointer callback_data );

  6. QT. Краткая история. • 1991 год Хаавард Норд – написание первых классов • Эрик Чамбенг – общий дизайн, идея «сигналов и слотов» • 1993 г – первое графическое ядро, создание widgets • 4 марта 1994 г -"Quasar Technologies“ "Troll Tech“"Trolltech" • 20 мая 1995 г Qt 0.90 • Май 1996 г.- Qt 0.97 • 1996 г. - Qt 1.0, Qt 1.1, KDE (Матиас Эттрич ) • 1997 г. - Qt 1.2, Qt 1.3 • 1999 г. - Qt 2 • 2001 г. - Qt 3. • 2005 г. – Qt 4

  7. QT. Объектная модель. • QObject – основной, базовый класс. • Класс QObject содержит в себе поддержку: • сигналов и слотов; • таймера; • механизма объединения объектов в иерархии; • событий и механизма их фильтраций; • организации объектных иерархий; • метаобъектной информации; • приведения типов; • свойств.

  8. Сигналы и слоты. • Обеспечивают связь между объектами; • Каждый класс, унаследованный от QObject, имеет любое число слотов и сигналов; • Аргументы любого типа в сообщениях, посылаемых посредством сигналов • 1 сигнал соединен с n слотов; • 1 слот получает сообщения от m сигналов, принадлежащих различным объектам; • Соединение может происходить в любой точке приложения; • Автоматическое разъединение со всеми сигнально-слотовыми связями при уничтожении объекта

  9. Сводная таблица Qt и GTK+

  10. Сферы применения GTK+ и Qt. • Быстрая разработка кода – Qt • Оптимизация, портабельность – GTK+ • Использование «малых» языков - GTK+ • Справочная система - Qt • Дешевизна - GTK+ • Независимая разработка - Qt • Низкоуровневый контроль над деталями интерфейса - GTK+

  11. Desktop widgets на Hildon.Home widgets. • Базовый класс для всех home widgets HDHomePluginItem из libhildondesktop • HD_DEFINE_PLUGIN_MODULE (TimeOutPlugin, time_out_plugin, HD_TYPE_HOME_PLUGIN_ITEM) • Пример файла .desktop [Desktop Entry] Name=TimeOut Widget Comment=Execute an action at a given time Type=default X-Path=lib-timeout-home-widget.so

  12. Desktop widgets на Hildon.Status Menu widgets. • Делятся на постоянные, условные и временные • Наследуют от HDStatusMenuItem • Пример файла .desktop [Desktop Entry] Name=Example Icon=general_email Comment=An example status menu widget Category=permanent Type=default X-Path=lib-example-status-menu-widget.so

  13. Control panel applets на Hildon. • #include <hildon-cp-plugin/hildon-cp-plugin-interface.h> • execute • save_state

  14. run-standalone.sh • Приведение стиля приложения к стилю среды • Вызывает af-defines.sh, в котором: • Устанавливаются соответствующие значения переменных окружения 1 #!/bin/sh 2 3 if [ -r /etc/osso-af-init/af-defines.sh ]; then 4 unset AF_DEFINES_SOURCED 5 source /etc/osso-af-init/af-defines.sh 6 else 7 echo "$0: /etc/osso-af-init/af-defines.sh is not readable!" 8 exit 1 9 fi 10 11 "$@"

More Related