Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемwww.wl.unn.ru
1 Введение в программирование с использованием библиотеки Qt
2 История 1994 – основана компания Trolltech, разработаны версии под Unix и Windows 1997 – библиотека Qt 1.2 легла в основу среды KDE 2000 – Qtopia Core (затем Qt/Embedded) для Embedded Linux 2001 – вышла Qt 3.0 для Unix, Linux, Mac и Windows 2005 – Qt – Trolltech Nokia
3 Примеры приложений KDE Skype Google Earth
4 Поддерживаемые платформы Unix, Linux (десктопные и мобильные версии с графической подсистемой X11) Windows XP, Vista, 7 Windows Mobile Mac OS X Android iOS (в процессе портирования)
5 Поддерживаемые языки C++ - язык самой библиотеки Python Ruby Java PHP
6 Модули библиотеки QtCore QtGui QtNetwork QtOpenGL QtSql QtXml QtMultimedia QtTest
7 Модуль QtCore контейнерные классы QVector,QList,QMap классы ввода-вывода QIODevice, QFile, QDataStream классы для работы с потоками и процесами QProcess, QThread, QMutex, QSemaphore классы для работы с датой и временем QDate, QTime, QDateTime QLocale QEvent QObject
8 Объектная модель Qt Объекты образуют иерархию по принципу родитель-ребенок Объект содержит всю информацию о себе Объекты соединяются с помощью механизма слотов-сигналов Объекты обрабатывают события Объекты обладают свойствами //pr1
9 Правила соединения сигналов и слотов Отношения многие ко многим Можно соединять сигнал с сигналом Количество аргументов слота
10 Рекомендации по использованию объектной модели не использовать иерархию объектов для доступа к защищенным полям класса не использовать сигналы и слоты в местах, где критична производительность использовать qobject_cast для преобразования типов указателей на объекты
11 Контейнерные классы Последовательные – вектор (QVector), список (QList и QLinkedList), стек (QStack) и очередь (QQueue) Ассоциативные – множество (QSet), словарь (QMap и QMultiMap), хэш (QHash и QMultiHash)
12 Работа с контейнерными классами по индексу для последовательных контейнеров по ключу для ассоциативных контейнеров итераторы в стиле Java и C++ foreach ! при входе в цикл происходит копирование всего контейнера
13 Устройства ввода-вывода Файл Сокет Буфер Процесс
14 Обработка сообщений QCoreApplication::exec() QThread::exec() QEventLoop::exec()
15 Графический интерфейс пользователя в Qt Базовый класс – QWidget, наследник QObject и класса QPaintDevice QPaintDevice - холст для рисования Основные задачи класса QWidget управление геометрией обработка событий графической системы управление поведением окна с помощью флагов изменение курсора Каждый виджет может быть окном
16 Ограничение графической подсистемы Нельзя производить непосредственное взаимодействие с виджетом из другого потока. Нужно: использовать слот-сигнальные соединения использовать пользовательские события
17 Наиболее интересные библиотечные виджеты QMainWindow QDialog QFrame QStackedWidget QScrollArea
18 События События клавиатуры События мыши События перерисовки События таймера События перетаскивания
19 Управление обработкой событий qApp->sendEvent() и qApp->postEvent() qApp->processEvents() QObject::installEventFilter()
20 Контекст рисования QPainter QPaintEngine QPaintDevice QWidget QImage, QPixmap, QBitmap, QGLPixelBuffer QPicture QPrinter
21 Перья и кисти Перо (QPen) – определяет цвет и стиль линий Кисть (QBrush) – определяет цвет и стиль заполнения контуров //pr2
22 Градиенты Линейный, конический и радиальный градиенты (QLinearGradient, QConicalGradient и QRadialGradient) градиенты можно устанавливать в качестве кистей
23 Управление размещением виджетов QLayout QVBoxLayout, QHBoxLayout, QGridLayout, QStackedLayout //pr4
24 Концепция модель- представление модель представление выделение делегат
25 Модели QAbstractItemModel – иерархия таблиц QAbstractListModel QStringListModel QDirModel QAbstractProxyModel QSortFilterProxyModel QStandartItemModel QAbstractTableModel QSqlQueryModel QSqlTableModel QSqlRelationalTableModel
26 Представления QAbstractItemView QHeaderView QListView QTableView QTreeView
27 Использование OpenGL в Qt QGLWidget – автоматически активируется аппаратное ускорение 2d графики в paintEvent //pr5
28 Использование механизма widget-controller причина использования – возможность удаления виджета механизм использование QPointer в контроллере определение операции widget() в контроллере //pr6
29 Внутренние ресурсы Qt Файл.qrc Q_INIT_RESOURCE путь начинается с :/ //pr7
30 Источники информации 1. Макс Шлее. Qt4. Профессиональное программирование на C++ Документация
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.