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

Презентация:



Advertisements
Похожие презентации
Программирование под Maemo Маличенко Дмитрий СПБ ГУАП.
Advertisements

Преобразования типов В языке C/C++ имеется несколько операций преобразования типов. Они используются в случае, если переменная одного типа должна рассматриваться.
Основы информатики Классы Заикин Олег Сергеевич zaikin.all24.org
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Ресурсы WPF Два типа ресурсов WPF: объектные ресурсы (object resource) – определенный.NET-объект, который можно использовать многократно; ресурсы сборки.
Обработка исключительных ситуаций Исключительная ситуация (исключение) – это ошибка, возникающая во время выполнения программы. Например, ошибка работы.
Курсовая работа по дисциплине Компьютерная графика Тема: Скринсейвер средствами Qt и OpenGL Выполнил: Савельев А. Л. Руководитель: Королёв Д. А.
Jalapeño – эффективная разработка приложений для Java Морозов Максим InterSystems Symposium 2007, Москва 4-5 сентября.
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
OOП Инна Исаева. Подпрограмма – это большая программа, разделённая на меньшие части. В программе одна из подпрограмм является главной. Её задача состоит.
Эффективная разработка отчётов на платформе.NET Александр Федяшов Fast Reports Inc.
Программирование на стороне сервера.
Язык Charm ++. Идеология Charm++ Charm++ - объектно-ориентированный язык программирования (расширение Си++), ориентированный на вычисления, управляемые.
Тема 5. Основы современной технологии программирования Программирование в средах современных информационных систем. Интегрированные системы разработки.
Лекция 6 Множественное распараллеливание на Linux кластере с помощью библиотеки MPI 1. Компиляция и запуск программы на кластере. 2. SIMD модель параллельного.
Введение в параллельные вычисления. Технология программирования MPI (день второй) Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных.
Введение в программирование с использованием библиотеки Qt.
Технические возможности. Наши цели Максимальная гибкость Максимальная скорость считывания и обработки данных Стабильность работы Максимальная простота.
ЛИНЕЙНАЯ ФУНКЦИЯ И ЕЁ ГРАФИК Алгебра 7 класс. Пусть функция задана формулой, где Х у , , ,524,57 Отметим в координатной.
К построению и контролю соблюдения политик безопасности распределенных компьютерных систем на основе механизмов доверия А. А. Иткес В. Б. Савкин Институт.
Транксрипт:

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

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.

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

Сигналы и обратные вызовы. 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 );

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

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

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

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

Сводная таблица Qt и GTK+ ФункцияGTK+Qt Базовый интерфейс CC++ ЛицензияLGPLДвойная Порт для Win32 и MacOS ++ Возможность прямых вызовов из C +- Интерфейсы Java, Perl, Python ++ Порт для.NET + (GTK#) + (Qt#) Бесплатно для коммерческого использования +-

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

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

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

Control panel applets на Hildon. #include #include execute execute save_state save_state

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, в котором: Устанавливаются соответствующие значения переменных окруженияУстанавливаются соответствующие значения переменных окружения