Уровень сложности:
Длительность курса: 40 ак.ч.
График обучения: 5 дней по 8 ак.ч. или 10 дней по 4 ак.ч.
Аннотация
Целью данной программы является углубленное изучение библиотеки Qt, а также совершенствование профессиональных компетенций в области разработки прикладного программного обеспечения на языке С++ с использованием библиотеки Qt.
Для достижения указанной цели предполагается решение следующих задач:
- изучение основных классов модулей QtSQL (работа с БД), QtNetwork (обмен по сети);
- изучение основных способов и классов для организации многозадачности;
- изучение принципов запуска дочернего приложения и осуществления обмена данными между приложениями;
- приобретение практических навыков создания приложений на базе Qt.
Знания и умения, полученные в результате обучения
В результате освоения программы у слушателей должен сформироваться комплекс знаний, умений и навыков в области написания эффективных программ с использованием инструментария Qt на базе языка С++.
В результате изучения программы слушатели должны:
знать:
-
основные классы модулей QtSQL (работа с БД), QtNetwork (обмен по сети);
- основные способы и классы для организации многозадачности;
- принципы создания многопоточного приложения;
- основные классы и принципы архитектуры MVC (model-view-controller);
уметь:
-
решать практические задачи по созданию приложений с использованием архитектуры MVC;
- использовать средства Qt для взаимодействия с БД, создания многопоточных приложений;
- запускать дочернее приложение и осуществлять обмен данными между приложениями;
владеть:
- навыками подключения модулей Qt посредством директив проекта;
- приемами отладки программного кода;
- графическим конструированием интерфейса приложения – Qt Designer;
- приемами создания соединений посредством сигналов-слотов;
- навыками использования системой доставки событий Qt.
Курсы, в освоении которых помогут приобретенные знания
Курсы связанных направлений
Сегодня занятий по этому курсу нет.
20 800 ₽
Расчёт стоимости с учётом возможных скидок
26 000 ₽
Скидки предоставляются в зависимости от количества слушателей,
суммы договора и других условий, оговариваемых с Заказчиком.
Расчёт стоимости с учётом возможных скидок представлен как справочная информация.
Фактический размер скидки может несколько отличаться из-за округления значения суммы.
Внимательно ознакомьтесь с условиями действующих
акций и скидок...
Базовые знания принципов построения современных операционных систем общего назначения. Владение основными концепциями объектно-ориентированного программирования. Владение языками С/C++. Знания и умения реализовать алгоритмы обработки различных структур данных.
Предварительное тестирование
Необходимо решить одну или несколько тестовых задач, набрав в сумме не менее 50 баллов. Ответ должен быть предоставлен; в виде исходных текстов программ с комментариями.
Слушатели, успешно закончившие курс «DEV-QT10. Прикладное программирование на С++ с использованием Qt. Базовый уровень» принимаются без предварительного тестирования.
Дисциплина 1. Программирование с использованием архитектуры MVC
- Основные классы архитектуры MVC. Классы модели (QAbstractItemModel, QStandartItemModel), представлений (QAbstractItemView). Модельные индексы. Роли элементов
- Дополнительные возможности архитектуры MVC. Использование делегатов. Промежуточная модель данных. Модели выбора.
Лабораторные занятия
- Реализация модели в виде таблицы хранимых данных.
- Отображение данных модели посредством QTableView.
- Использование делегатов для модификации данных в табличном представлении в удобном для пользователя виде.
Дисциплина 2. Взаимодействие с базами данных
- Основные классы для работы с БД. Установление соединения с БД. Добавление таблиц в БД, работа с записями в таблицах, модификация полей записи, выборка записей, удовлетворяющих условию, упорядочение записей.
- Использование архитектуры MVC для работы с БД. Классы моделей: QSqlQueryModel, QSqlTableModel, QSqlRelationalTableModel, QSqlRelationalDelegate. Создание информационно-связанных форм (QDataWidgetMapper).
Лабораторные занятия
- Создание однотабличной базы данных и заполнение ее данными с использованием Qt.
- Работа с БД посредством модели: связь модели с базой данных, занесение, модификация, удаление, упорядочение данных.
Дисциплина 3. Межпроцессное взаимодействие
- Реализация многозадачности посредством процессов. Формирование, хранение (QByteArray), передача «сырых» данных. Классы ввода/вывода (QIODevice, QFile, QBuffer, QProcess).
- Обмен данными между процессами. Обмен с дочерним процессом посредством перенаправления стандартного ввода/вывод. Разделяемая память (QSharedMemory).
Лабораторные занятия
- Запуск обособленного дочернего процесса.
- Запуск дочернего процесса с ожиданием его завершения.
- Запуск дочернего процесса с возможностью обмена данными.
- Использование разделяемой памяти.
Дисциплина 4. Использование многопоточности
- Реализация многозадачности посредством потоков. Потоковые классы (обзор). Использование класса QThread. Синхронизация потоков с помощью: QMutex, QSemaphore, QSystemSemaphore, QWaitCondition.
- Высокоуровневый API для поддержки многопоточности. Использование классов QtConcurrent, QRunnable, QThreadPool. Взаимодействие вторичного потока с главным. Механизмы оповещения главного потока (события, сигналы-слоты).
Лабораторные занятия
- Использование класса QThread.
- Создание нескольких потоков для параллельного выполнения задачи.
- Использование различных объектов синхронизации.
Дисциплина 5. Обмен данными по сети
- Классы для поддержки сетевого взаимодействия. Сетевые протоколы (TCP, UDP). Модель «клиент- сервер». Низкоуровневый API для взаимодействия посредством сокетов: QTcpServer, QTcpSocket, QHostAddress, QUdpSocket. Обмен сообщениями разной длины. Асинхронный и блокирующий подход.
- Высокоуровневый API для сетевого взаимодействия. Классы: QNetworkAccessManager, QNetworkRequest, QNetworkReply
Лабораторные занятия
- Создание простых клиента и сервера TCP.
- Многопоточный сервер TCP.
-
Создание клиента и сервера UDP.