Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемosll.spb.ru
1 Сравнительный анализ библиотек построения GUI на Maemo 4/5 Дорохова Р.В.
2 GTK+. Краткая история. GIMP (GNU Image Manipulation) - Peter Mattis, Spencer Kimball и Josh Macdonald.Спенсер - GTK GIMP (GNU Image Manipulation) - Peter Mattis, Spencer Kimball и Josh Macdonald.Спенсер - GTK Marius Vollmer – языковые привязки Marius Vollmer – языковые привязки Lars Hamann и Stefan Jeske - основные элементы управления Lars Hamann и Stefan Jeske - основные элементы управления Carsten Haitzler – поддержка тем Carsten Haitzler – поддержка тем Shawn Amundson - менеджмент релизов GTK+-1.0 и GTK Shawn Amundson - менеджмент релизов GTK+-1.0 и GTK+-1.2.
3 GTK. Основные компоненты. GTK+ зависит от следующих библиотек: GLib GLib Pango Pango ATK ATK GdkPixbuf GdkPixbuf GDK GDK GTK GTK
4 Сигналы и обратные вызовы. gulong g_signal_connect( gpointer *object, const gchar *name, GCallback func, const gchar *name, GCallback func, gpointer func_data ); gulong g_signal_connect_swapped( gpointer *object, const gchar *name, GCallback func, const gchar *name, GCallback func, gpointer *slot_object ); void callback_func( GtkWidget *widget, gpointer callback_data ); void callback_func( GtkObject *object ); void callback_func( GtkObject *object );
5 События Представляют собой разновидность сигналов Представляют собой разновидность сигналов Тесно связаны с событиями системы X- Window Тесно связаны с событиями системы X- Window Общий вид заголовка функции-обработчика событий: Общий вид заголовка функции-обработчика событий: gint callback_func(GtkWidget *widget, GdkEvent *event, GdkEvent *event, gpointer callback_data ); gpointer callback_data );
6 QT. Краткая история год Хаавард Норд – написание первых классов 1991 год Хаавард Норд – написание первых классов Эрик Чамбенг – общий дизайн, идея «сигналов и слотов» Эрик Чамбенг – общий дизайн, идея «сигналов и слотов» 1993 г – первое графическое ядро, создание widgets 1993 г – первое графическое ядро, создание widgets 4 марта 1994 г -"Quasar Technologies 4 марта 1994 г -"Quasar Technologies "Troll Tech "Trolltech" "Troll Tech "Trolltech" 20 мая 1995 г Qt мая 1995 г Qt 0.90 Май 1996 г.- Qt 0.97 Май 1996 г.- Qt г. - Qt 1.0, Qt 1.1, KDE (Матиас Эттрич ) 1996 г. - Qt 1.0, Qt 1.1, KDE (Матиас Эттрич ) 1997 г. - Qt 1.2, Qt г. - Qt 1.2, Qt г. - Qt г. - Qt г. - Qt г. - Qt г. – Qt г. – Qt 4
7 QT. Объектная модель. QObject – основной, базовый класс. QObject – основной, базовый класс. Класс QObject содержит в себе поддержку: Класс QObject содержит в себе поддержку: сигналов и слотов; сигналов и слотов; таймера; таймера; механизма объединения объектов в иерархии; механизма объединения объектов в иерархии; событий и механизма их фильтраций; событий и механизма их фильтраций; организации объектных иерархий; организации объектных иерархий; метаобъектной информации; метаобъектной информации; приведения типов; приведения типов; свойств. свойств.
8 Сигналы и слоты. Обеспечивают связь между объектами; Обеспечивают связь между объектами; Каждый класс, унаследованный от QObject, имеет любое число слотов и сигналов; Каждый класс, унаследованный от QObject, имеет любое число слотов и сигналов; Аргументы любого типа в сообщениях, посылаемых посредством сигналов Аргументы любого типа в сообщениях, посылаемых посредством сигналов 1 сигнал соединен с n слотов; 1 сигнал соединен с n слотов; 1 слот получает сообщения от m сигналов, принадлежащих различным объектам; 1 слот получает сообщения от m сигналов, принадлежащих различным объектам; Соединение может происходить в любой точке приложения; Соединение может происходить в любой точке приложения; Автоматическое разъединение со всеми сигнально- слотовыми связями при уничтожении объекта Автоматическое разъединение со всеми сигнально- слотовыми связями при уничтожении объекта
9 Сводная таблица Qt и GTK+ ФункцияGTK+Qt Базовый интерфейс CC++ ЛицензияLGPLДвойная Порт для Win32 и MacOS ++ Возможность прямых вызовов из C +- Интерфейсы Java, Perl, Python ++ Порт для.NET + (GTK#) + (Qt#) Бесплатно для коммерческого использования +-
10 Сферы применения GTK+ и Qt. Быстрая разработка кода – Qt Быстрая разработка кода – Qt Оптимизация, портабельность – GTK+ Оптимизация, портабельность – GTK+ Использование «малых» языков - GTK+ Использование «малых» языков - GTK+ Справочная система - Qt Справочная система - Qt Дешевизна - GTK+ Дешевизна - GTK+ Независимая разработка - Qt Независимая разработка - Qt Низкоуровневый контроль над деталями интерфейса - GTK+ Низкоуровневый контроль над деталями интерфейса - GTK+
11 Desktop widgets на Hildon. Home widgets. Базовый класс для всех home widgets HDHomePluginItem из libhildondesktop Базовый класс для всех home widgets HDHomePluginItem из libhildondesktop HD_DEFINE_PLUGIN_MODULE (TimeOutPlugin, time_out_plugin, HD_TYPE_HOME_PLUGIN_ITEM) HD_DEFINE_PLUGIN_MODULE (TimeOutPlugin, time_out_plugin, HD_TYPE_HOME_PLUGIN_ITEM) Пример файла.desktop Пример файла.desktop [Desktop Entry] Name=TimeOut Widget Comment=Execute an action at a given time Type=defaultX-Path=lib-timeout-home-widget.so
12 Desktop widgets на Hildon. Status Menu widgets. Делятся на постоянные, условные и временные Делятся на постоянные, условные и временные Наследуют от HDStatusMenuItem Наследуют от HDStatusMenuItem Пример файла.desktop Пример файла.desktop [ Desktop Entry] Name=ExampleIcon=general_ Comment=An example status menu widget Category=permanentType=defaultX-Path=lib-example-status-menu-widget.so
13 Control panel applets на Hildon. #include #include execute execute save_state save_state
14 run-standalone.sh 1#!/bin/sh 2 3if [ -r /etc/osso-af-init/af-defines.sh ]; then 4 unset AF_DEFINES_SOURCED 5 source /etc/osso-af-init/af- defines.sh 6else 7 echo "$0: /etc/osso-af-init/af- defines.sh is not readable!" 8 exit 1 9fi 10 Приведение стиля приложения к стилю среды af-defines.sh, в котором:Вызывает af-defines.sh, в котором: Устанавливаются соответствующие значения переменных окруженияУстанавливаются соответствующие значения переменных окружения
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.