8 812 320 13 03
  • Новости
  • Расписание
  • Курсы
  • Организациям
  • Контакты
  • Перезвоните мне

    Курс Программирование на C++. Инструментарий Qt

    Курс C++. Инструментарий Qt

    NEW
    Курс C++. Инструментарий Qt
    Начало курса
    18.09.2019
    Продолжительность
    3,5 месяца (72+ ак. часов)
    Расписание
    Ср 19:00 - 22:00
    Сб 11:00 - 14:00
    Семинар
    (18 мест)
    42990 записаться
    свернуть

    Описание курса

    Курс "C++ Инструментарий Qt" является продолжением курсов "Основы программирования на C++" и "C++ Junior Developer" и рассчитан на участников уже знакомых с программированием на языке С++. 

    Курс состоит из трех частей и включает большинство аспектов разработки приложений на C++ с классическим графическим интерфейсом с помощью библиотек и инструментария Qt. Инструментарий Qt, в свою очередь, обеспечивает кроссплатформенность написанных приложений на уровне исходного кода (для компиляции программы под Windows или Linux не требуется изменять ее код). 

    Каждое занятие включает в себя лекционный материал, практику и домашнее задание, несколько занятий посвящены практике целиком.

    Краткое содержание курса:

    • Модуль 1. Qt введение. Использование инструментария Qt вне зависимости от среды разработки на примере MS Visual Studio. Базовые классы Qt для построения графического интерфейса в виде диалоговой формы. Qt Meta-Object System.
    • Модуль 2. Использование MS Visual Studio в сочетании с плагином Qt-VS-Addin. Построение графического интерфейса как SDI и MDI. Работа с форматированным текстом. Архитектура Model/View, работа со списками, деревьями, таблицами.
    • Модуль 3. Qt в Linux. Создание кроссплатформенного кода с помощью Qt Creator, qmake. Работа с потоками, сетью и базами данных.

    Во время прохождения курса Вы получаете: 

    • Видео-записи каждого занятия курса
    • Дополнительные материалы
    • Возможность прохождения занятий как в аудитории (в режиме семинара), так и в режиме вебинара со своего компьютера. Это поможет вам не пропустить ни одного занятия. 
    • Вкусный чай и кофе во время перерывов 
    После прохождения данного курса Вы сможете писать кросс-платформенные приложения на языке C++ с использованием Qt - самого совершенного и популярного кроссплатформенного фреймворка для C++. 

    свернуть

    Программа

    Модуль 1


    Занятие 1-1. Qt введение, программа "Hello World"

    • Вспоминаем предыдущие курсы
    • Перечень средств разработки
    • Настройка системы контроля версий для сдачи домашней работы
    • Qt вводная лекция
    • Настройка ОС и среды разработки
    • Модули QtCore, QtGui, QtWidgets
    • Программа "Hello World"
    • Сборка дистрибутива
    • Домашнее задание

    Занятие 1-2. Базовые классы Qt для построения программы и графического интерфейса

    • Класс QObject
    • Класс QApplication
    • Класс QWidget
    • Геометрия окон
    • Стандартные элементы управления
    • Расположение элементов в диалоговой форме
    • QLayout и производные классы
    • Практика
    • Домашнее задание

    Занятие 1-3. Qt Event System

    • Построение программы как цикл обработки сообщений
    • Класс QEventLoop
    • QEvent и производные классы
    • Обработка QEvent классами QObject и QWidget
    • Создание и отправка QEvent
    • Фильтрация QEvent
    • Использование таймеров
    • Практика
    • Домашнее задание

    Занятие 1-4. Сигналы и слоты, Meta-Object Compiler

    • Сигналы и слоты
    • Различные способы соединения сигналов
    • Слоты, определение источника сигнала
    • Блокировка сигналов
    • Meta-Object Compiler
    • Практика
    • Домашнее задание

    Занятие 1-5. Implicit sharing, Qt контейнеры

    • Разделение Identity vs Value
    • Технология Implicit Sharing
    • Классы Qt использующие Implicit Sharing
    • Создание своего класса с Implicit Sharing
    • Контейнеры в Qt
    • Адаптация своего класса для использования в контейнерах
    • Практика
    • Домашнее задание

    Занятие 1-6. Qt Meta-Type system

    • Чтение и запись в потоки ввода/вывода
    • Классы QDataStream, QTextStream
    • Запись своего класса в QDataStream
    • Класс QVariant
    • Доступ к контейнерам внутри QVariant
    • Хранение своего класса внутри QVariant
    • Класс QMetaType
    • Подключение своего класса к QMetaType
    • Практика
    • Домашнее задание

    Занятие 1-7. Qt Meta-Object system

    • Класс QObject, метаинформация
    • Создание своего класса с метаинформацией
    • Qt Property System
    • Объявление свойств внутри своего класса
    • Классы QMetaObject, QMetaProperty, QMetaMethod
    • Обращение к своему классу через meta-object system
    • Объявление Q_GADGET
    • Практика
    • Домашнее задание

    Занятие 1-8. Работа с файлами

    • Классы QFile и QDir
    • Префиксы поиска файлов
    • Qt Resource System
    • Resource Compiler
    • Сохранение состояния программы
    • Класс QSettings
    • Практика
    • Домашнее задание

    Занятие 1-9. Qt Linguist

    • Перевод интерфейса в Qt
    • Правила написания кода для выполнения перевода
    • Подключение словарей
    • Утилиты lupdate, lrelease
    • Qt Linguist
    • Создание перевода
    • Практика
    • Домашнее задание

    Занятие 1-10. Qt Designer

    • Редактор форм Qt Designer
    • User Interface Compiler
    • Практика
    • Домашнее задание

    Модуль 2


    Занятие 2-1. Single Document Interface

    • Использование плагина Qt-VS-Addin
    • Класс QMainWindow
    • Рабочая зона с одним документом
    • Главное меню, классы QMenu и QMenuBar
    • Класс QAction и горячие клавиши
    • Панель инструментов QToolBar
    • Строка состояния QStatusBar
    • Практика
    • Домашнее задание

    Занятие 2-2. Multiple Document Interface

    • Рабочая зона с несколькими документами
    • Классы QMdiArea и QMdiSubWindow
    • Летающая панель QDockWindow
    • Классическая компоновка меню Файл/Вид
    • Класс QFileDialog, функция getOpenFileName
    • Список недавно открытых файлов
    • Показ и сокрытие частей интерфейса
    • Сохранение состояния интерфейса
    • Практика
    • Домашнее задание

    Занятие 2-3. Работа с форматированным текстом

    • Классы QTextEdit и QPlainTextEdit
    • Класс QTextDocument, структура документа
    • Класс QTextCursor, изменение документа
    • Поддержка HTML
    • Буфер обмена QClipboard
    • Классическая компоновка меню Правка
    • Вывод на печать
    • Практика
    • Домашнее задание

    Занятие 2-4. Model/View введение, готовые классы

    • Архитектура Model/View
    • Модели, элементы и индексы
    • Готовые классы моделей
    • Представления
    • Выделение элементов
    • Изменение элемента, delegates
    • Готовые классы отображения дерева, таблицы
    • Практика
    • Домашнее задание

    Занятие 2-5. Model/View, создание своих классов

    • Proxy модели
    • Сортировка и фильтрация
    • Drag and Drop
    • Класс QAbstractItemModel
    • Создание своей древовидной модели
    • Использование своей модели в QTreeView
    • Создание своего delegate редактора
    • Практика
    • Домашнее задание

    Занятие 2-6. Qt Undo-Redo Framework

    • Процесс изменения документа как последовательность команд
    • Класс QUndoCommand
    • Класс QUndoStack
    • Класс QUndoGroup
    • Создание своего документа с механизмом Undo-Redo
    • Практика
    • Домашнее задание

    Занятие 2-7. Qt Graphics View Framework

    • Архитектура Graphics View, 2D графика
    • Сцена QGraphicsScene
    • Графические элементы QGraphicsItem
    • Готовые классы графических элементов
    • Система координат
    • Представление QGraphicsView
    • Захват изображения, печать
    • Практика
    • Домашнее задание

    Занятие 2-8. Графики Qt Charts

    • Модуль QtCharts
    • Классы QChart и QChartView
    • Гистограмма QBarSeries
    • Классы QLineSeries и QSplineSeries
    • Легенда
    • Оси координат
    • Интерактивные графики
    • Практика
    • Домашнее задание

    Занятие 2-9. Большая практика: программа mini-excel

    • Multiple Document Interface
    • Классическая компоновка меню Файл/Правка/Вид
    • Классическая компоновка панели инструментов
    • Работа с файлами, открыть/сохранить, список недавних
    • Редактор таблиц с помощью Model/View
    • Добавление функций Undo-Redo
    • Анализ формул с помощью регулярных выражений
    • Построение графиков по данным из таблиц
    • Домашнее задание

    Занятие 2-10. Большая практика: программа mini-excel

    • Продолжение предыдущего занятия
    • Сборка дистрибутива
    • Dependency Walker Tool
    • Windows Deployment Tool
    • MSVC Redistributable
    • Проверка программы на тестовой виртуальной машине

    Модуль 3


    Занятие 3-1. Qt Creator, qmake

    • Утилита qmake
    • Создание файлов проекта *.pro
    • Преобразование файла проекта в формат MSVS
    • Язык qmake
    • Использование Qt Creator
    • Утилита configure
    • Практика
    • Домашнее задание

    Занятие 3-2. Qt XML Processing

    • XML документ
    • Чтение XML, класс QXmlStreamReader
    • Запись XML, класс QXmlStreamWriter
    • Классы представления XML как Document Object Model
    • Проверка XML, класс QXmlSchema
    • Практика
    • Домашнее задание

    Занятие 3-3. Qt в Linux

    • Кроссплатформеннный код
    • Qt в Linux
    • Настройка ОС и среды разработки
    • Компиляция предыдущих программ
    • Определение путей к стандартным папкам
    • Системный трей, класс QSystemTrayIcon
    • Практика
    • Домашнее задание

    Занятие 3-4. Базовые сетевые протоколы

    • Сетевая модель OSI
    • Модуль QtNetwork
    • Классы QHostAddress и QHostInfo
    • Протокол UDP, класс QUdpSocket
    • Протокол TCP, классы QTcpServer и QTcpSocket
    • Отсутствие в Qt служебных протоколов
    • Практика
    • Домашнее задание

    Занятие 3-5. Сетевые протоколы верхнего уровня

    • Протоколы HTTP, FTP
    • Загрузка интернет страниц
    • Классы QNetworkAccessManager
    • Классы QNetworkRequest и QNetworkReply
    • JavaScript и протокол WebSocket
    • Классы QWebSocketServer и QWebSocket
    • Практика
    • Домашнее задание

    Занятие 3-6. Большая практика: программа messenger

    • Кроссплатформенное оформление проекта
    • Пересылка xml-сообщений по сети
    • Обнаружение других запущенных messenger с помощью широкого вещания UDP
    • Отправка сообщений как TCP-клиент
    • Прием сообщений как TCP-сервер
    • Домашнее задание

    Занятие 3-7. Использование СУБД

    • СУБД SQLite
    • Язык SQL
    • Модуль QtSql
    • Подключение к СУБД, класс QSqlDatabase
    • Выполнение запросов, класс QSqlQuery
    • Классы QSqlQueryModel и QSqlTableModel
    • Практика
    • Домашнее задание

    Занятие 3-8. Работа с потоками

    • Процессы и потоки
    • Атомарные операции
    • Reentrancy and Thread-Safety
    • Привязка QObject к потоку
    • Создание потоков, класс QThread
    • Синхронизация потоков
    • Практика
    • Домашнее задание

    Занятие 3-9. Большая практика: программа messenger

    • Определение повторного запуска программы
    • Классы QLocalServer и QLocalSocket
    • Вынос сетевого кода в отдельный поток
    • Сохранение истории сообщений в SQLite
    • Вложение файлов в сообщения
    • Домашнее задание

    Занятие 3-10. Большая практика: программа messenger

    • Продолжение предыдущего занятия
    • Сборка Windows дистрибутива
    • Сборка Linux дистрибутива
    • Статическая линковка
    • Проверка программы на тестовой виртуальной машине
    • Проверка программы общением между Windows и Linux

    свернуть

    Преподаватель

    Михаил

    С++/Qt Developer в компании "Элекс".

    Закончил СПбПУ, Институт компьютерных наук и технологий по специальности "Приборостроение".

    Имеет более 13 лет опыта в разработке ПО на языке С++/Qt, программирования микроконтроллеров и баз данных. В течение 6 лет преподавал разные курсы в СПбПУ.

    свернуть

    Фотографии

    Курсы программирования, тестирования, мобильных и веб-технологий от Level UP!
    Учитесь с профессионалами в сфере IT-образования!