9.22M
Категория: ПрограммированиеПрограммирование

Человеко-машинное взаимодействие. Лекция 1

1.

Человеко-машинное
взаимодействие
Лекция 1
Мерзлякова Екатерина Юрьевна
к.т.н. доцент ПМиК

2.

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

3.

Основные вопросы
человеко-машинного
взаимодействия

4.

QtCreator
Microsoft Windows,
Mac OS X,
Linux,
FreeBSD и других клонов UNIX,
iOS, Android,
Windows Phone, Windows RT и BlackBerry.

5.

Установка Qt 5.10 и выше
https://www.qt.io/offline-installers
https://disk.yandex.ru/d/QCj0Jujk_6_xnA

6.

Установка Qt 5.10

7.

Установка Qt 5.10
MinGW 5.3.0 32 bit.

8.

Применение Qt

9.

Применение Qt

10.

Применение Qt

11.

Применение Qt

12.

Применение Qt

13.

Применение Qt

14.

Возможности Qt
•Поддержку 2D и 3D графики (OpenGL, QT 3D)
•Возможность интернационализации
•Использование форматов JSON и XML
•STL-совместимую библиотеку контейнеров
•Поддержку стандартных протоколов ввода-вывода.
•Классы для работы с сетью
•Поддержку программирования баз данных
•И.др.

15.

Модули QT. QtCore
QCoreApplication –класс приложения;
QList, QVector, QMap, QVariant, QString – контейнерные
классы;
QIODevice, QTextStream, QFile – классы для ввода и вывода;
QBasicTimer, QTimer – классы для работы с таймером;
QObject – основной класс, родительский для большинства
классов Qt;
QEvent – основной класс событий;
QSettings – класс для сохранения настроек приложения;
и другие.

16.

Модули QT. QtGui
QGuiApplication – класс для управления графическим интерфейсом
приложения и основными настройками;
QWindow – класс окна в базовой оконной системе;
QAction – класс для пользовательских команд, которые могут быть
добавлены к различным компонентам пользовательского интерфейса;
QDrag – класс для поддержки передачи данных перетаскиванием;
QImage – класс аппаратно-независимого представления изображения для
обеспечения прямого доступа к данным пикселей;
QPainter - выполняет низкоуровневое рисование на виджетах и других
устройствах рисования;
QPaintDevice - базовый класс объектов, которые могут быть нарисованы
с помощью QPainter;
QScreen - Используется для запроса свойств экрана;
и другие.

17.

Модули QT. QtWidgets
QWidget – базовый класс для всех элементов управления;
QVBoxLayout, QHBoxLayout – классы компоновки виджетов;
QLabel, QLCDNumber – классы элементов отображения;
QPushButton, QCheckBox, QRadioButton – классы кнопок;
QSlider, QScrollBar – классы элементов установок;
QLineEdit, QSpinBox – классы элементов ввода;
QComboBox, QToolBox – классы элементов выбора;
QMainWindow, QMenu – классы меню;
QMessageBox, QDialog – классы окон сообщений и диалоговых окон;
QPainter, QBrush, QPen, QColor – классы для рисования;
QImage, QPixmap – классы для растровых изображений;
и другие.

18.

Модули QT
QtQuick, QtQML – для быстрой разработки
графических интерфейсов
на базе QML, JavaScript и возможностей Qt;
QtNetwork – сетевой модуль для программирования
TCP- и UDP-сокетов, а также для реализации
программ-клиентов, использующих HTTP- и FTPпротоколы;
QtXml, QtXmlPatterns – для работы с XML;
QtSql – для работы с базами данных;
QtMultimedia, QtMultimediaWidgets модули для
разработки приложений с поддержкой
мультимедиа;
QtSvg – модуль поддержки графического векторного
формата SVG, базирующегося на XML.

19.

IDE QT CREATOR

20.

Создание проекта

21.

Создание проекта

22.

Создание проекта

23.

Создание проекта

24.

Создание проекта

25.

Создание проекта
HEADERS – заголовочные файлы проекта с расширением .h;
CONFIG – параметры компилятора, настройки конфигурации
проекта с помощью флагов.
QT – используемые в проекте модули Qt. По умолчанию указано
ядро и графический интерфейс;
TARGET – название исполняемого файла;
TEMPLATE – тип проекта: app, lib, subdirs, aux, vcapp или vclib;
SOURCES – все исходные файлы проекта с расширением .cpp;
FORMS – файлы, описывающие формы Qt Designer;
DEFINES – макроопределения в проекте, аналогичные директиве
препроцессора #define;
RESOURCES – указывает на файл ресурсов;
VERSION – версия проекта.

26.

Создание проекта

27.

Создание проекта

28.

Создание проекта

29.

Создание проекта

30.

Создание проекта

31.

Qt Designer

32.

Qt Designer

33.

Qt Designer

34.

Сигналы и слоты

35.

Сигналы и слоты
bool QObject::connect(
const QObject *sender, //источник события
const char *signal, //сигнал
const QObject *receiver, //объект-приемник
const char *method, //функция-обработчик
Qt::ConnectionType type = Qt::AutoConnection
//режим обработки
) const;

36.

Сигналы и слоты

37.

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

38.

Преимущества механизма сигналов
и слотов
соединение сигналов и слотов можно производить
в любой точке приложения;
сигналы и слоты являются механизмами,
обеспечивающими связь между объектами. Более
того, эта связь может выполняться между объектами,
которые находятся в различных потоках;
при уничтожении объекта происходит
автоматическое разъединение всех сигнальнослотовых связей. Это гарантирует, что сигналы не
будут отправляться к несуществующим объектам;

39.

Определение слотов
Public
Private
Protected
Private slots:
Protected slots:
Public slots:

40.

Недостатки механизма сигналов и
слотов
•сигналы и слоты не являются частью языка С++,;
•отправка сигналов происходит немного медленнее,
чем обычный вызов функции, который
осуществляется при использовании механизма
функций обратного вызова;
•существует необходимость в наследовании класса
QObject;
•в процессе компиляции не производится никаких
проверок.

41.

Пример

42.

Менеджер компоновки
• QHBoxLayout
• QVBoxLayout
• QGridBoxLayout

43.

Менеджер компоновки

44.

Создание меню
•Меню верхнего уровня
•Всплывающие меню
•Отрывное меню
•Контекстное меню
QMenu
QAction
hovered()

45.

Меню верхнего уровня

46.

Создание меню

47.

Свойства пунктов меню

48.

Редактирование меню

49.

Редактирование меню

50.

«Анатомия» меню

51.

Литература по Qt
1.
2.
3.
4.
5.
6.
Qt, Tools for Each Stage of Software Development Lifecycle [Электронный ресурс].
URL: https://www.qt.io (дата обращения: 5.05.2023).
Алексеев Е.Р., Злобин Г.Г., Костюк Д.А. [и др.] Программирование на языке С++
в среде Qt Creator : Курс лекций. — Москва : Интуит НОУ, 2016. — 715 с.
[Электронный ресурс]. URL: https://book.ru/book/918128 (дата обращения:
05.05.2023).
Шлее М. Qt 5.10. Профессиональное программирование на C++. БХВПетербург, 2018. 1052 c.
Зубкова Т.М. Технология разработки программного обеспечения: учебное
пособие. Оренбургский гос. ун-т.- Оренбург: ОГУ, 2017. – 468 с.
Корнипаев И.Требования для программного обеспечения: рекомендации по
сбору и документированию. М.: Издательство «Книга по Требованию», 2013. –
118 с.
Мерзлякова Е. Ю. Визуальное программирование и человеко-машинное
взаимодействие : практикум / Сибирский государственный университет
телекоммуникаций и информатики. Новосибирск, 2022. 49 с.
English     Русский Правила