Разработка UI с использованием библиотеки Qt

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

Cтруктура курса

Введение

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

Обзор библиотеки Qt и SDK

Рассматриваются компоненты библиотеки; Qt расширения языка С++;
Обзор основных виджетов и инструментов. Вопросы интернационализации приложений. Алгорим создания приложения с использованием QtCreator и
Designer.

Метаобъектная система Qt

Архитектура метаобъектной системы Qt. Сигналы и слоты. Макросы Макросы. Способы обмена сообщениями между объектами. Примитивы connect, disconnect. Получение информации об отправителе и его типе.

Model-View-Controller и Document-View

Разделение данных, интерфейсов пользователя и управления. Рассматривается архитектура MVC и DV, вводится понятие модели данных, формулируются правила построения программного интерфейса модели; сравнительный анализ MVC и DV. Разделение данных и интерфейсов.

Диалоговые окна

Обзор стандартных диалоговых окон, Базовые классы QWidget и QDialog. Соглашения об выделении и использовании памяти. Размещение объектов на форме. Менеджеры компоновки;

Способы расширения базовой функциональности

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

Обработка событий

Понятие цикла обработки сообщений. Алгоритм обработки сообщений. Модальные и немодальные окна. Трансформация событий в сигналы. Установка фильтров сообщений.

Рисование 2D

Классы и примитивы рисования. Обработка события таймера. Создание анимации. Классы представляющие Графические объекты и их интерфейсы.

Сериализация объектов в XML

Краткое введение в XML. Способы обработки XML данных. SAX и DOM модели. Использоване классов Qt для сериализации/десериализации объектов. Тонкости межпроцессной передачи объектов.

Приложения с главным окном

Класс QMainWindow. Компоненты главного окна: меню, статусная строка, области швартовки, панели инструментов. Создание действий и привяхка их к элементам управления.

Таблицы и списки

Виджеты таблиц и списков. Стандартные и пользовательские модели данных. Редактирование данных в модели. Обновление представлениий. Понятие индекса элемента. Представление модели в памяти.

Делегаты

Использование делегатов для доступа к данным. Пользовательские виджеты редактирования. Создание пользовательских представлений ячеек. Сравнение модели с делегатами с моделью MVC

Сетевые возможности

Исследование модуля QtNetwork. Управление соединениями, разработка приложений для работы с прикладными протоколами стека TCP/IP. Использование классов QtWebKit для создания web-приложений.

Модульное тестирование

Методы модульного и функционального тестирования. Использование классов QtTest. Программная имитация событий интерфейса пользователя.

Программирование для мобильных устройств

Методы и инструменты разработки для мобильных устройств. Компоненты QtMobility. Использование сенсоров. Работа с GPS модулем. Доступ к основным сервисам: адресные книги, отправка сообщений.